group_theory.quotient_groupMathlib.GroupTheory.QuotientGroup

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -228,7 +228,7 @@ group homomorphism `G/N →* H`. -/
 def lift (φ : G →* H) (HN : ∀ x ∈ N, φ x = 1) : Q →* H :=
   (QuotientGroup.con N).lift φ fun x y h =>
     by
-    simp only [QuotientGroup.con, left_rel_apply, Con.rel_mk] at h 
+    simp only [QuotientGroup.con, left_rel_apply, Con.rel_mk] at h
     calc
       φ x = φ (y * (x⁻¹ * y)⁻¹) := by rw [mul_inv_rev, inv_inv, mul_inv_cancel_left]
       _ = φ y := by rw [φ.map_mul, HN _ (N.inv_mem h), mul_one]
@@ -695,7 +695,7 @@ noncomputable def quotientInfEquivProdNormalQuotient (H N : Subgroup G) [N.Norma
     (mk' <| N.subgroupOf (H ⊔ N)).comp (inclusion le_sup_left)
   have φ_surjective : Surjective φ := fun x =>
     x.inductionOn' <| by
-      rintro ⟨y, hy : y ∈ ↑(H ⊔ N)⟩; rw [mul_normal H N] at hy 
+      rintro ⟨y, hy : y ∈ ↑(H ⊔ N)⟩; rw [mul_normal H N] at hy
       rcases hy with ⟨h, n, hh, hn, rfl⟩
       use h, hh; apply quotient.eq.mpr
       change Setoid.r _ _
@@ -789,7 +789,7 @@ theorem subgroup_eq_top_of_subsingleton (H : Subgroup G) (h : Subsingleton (G 
   top_unique fun x _ =>
     by
     have this : 1⁻¹ * x ∈ H := QuotientGroup.eq.1 (Subsingleton.elim _ _)
-    rwa [inv_one, one_mul] at this 
+    rwa [inv_one, one_mul] at this
 #align quotient_group.subgroup_eq_top_of_subsingleton QuotientGroup.subgroup_eq_top_of_subsingleton
 #align quotient_add_group.add_subgroup_eq_top_of_subsingleton QuotientAddGroup.addSubgroup_eq_top_of_subsingleton
 -/
Diff
@@ -5,10 +5,10 @@ Authors: Kevin Buzzard, Patrick Massot
 
 This file is to a certain extent based on `quotient_module.lean` by Johannes Hölzl.
 -/
-import Mathbin.GroupTheory.Congruence
-import Mathbin.GroupTheory.Coset
-import Mathbin.GroupTheory.Subgroup.Finite
-import Mathbin.GroupTheory.Subgroup.Pointwise
+import GroupTheory.Congruence
+import GroupTheory.Coset
+import GroupTheory.Subgroup.Finite
+import GroupTheory.Subgroup.Pointwise
 
 #align_import group_theory.quotient_group from "leanprover-community/mathlib"@"0ebfdb71919ac6ca5d7fbc61a082fa2519556818"
 
Diff
@@ -4,17 +4,14 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kevin Buzzard, Patrick Massot
 
 This file is to a certain extent based on `quotient_module.lean` by Johannes Hölzl.
-
-! This file was ported from Lean 3 source module group_theory.quotient_group
-! leanprover-community/mathlib commit 0ebfdb71919ac6ca5d7fbc61a082fa2519556818
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.GroupTheory.Congruence
 import Mathbin.GroupTheory.Coset
 import Mathbin.GroupTheory.Subgroup.Finite
 import Mathbin.GroupTheory.Subgroup.Pointwise
 
+#align_import group_theory.quotient_group from "leanprover-community/mathlib"@"0ebfdb71919ac6ca5d7fbc61a082fa2519556818"
+
 /-!
 # Quotients of groups by normal subgroups
 
Diff
@@ -56,8 +56,7 @@ namespace QuotientGroup
 
 variable {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal] {H : Type v} [Group H]
 
-include nN
-
+#print QuotientGroup.con /-
 /-- The congruence relation generated by a normal subgroup. -/
 @[to_additive "The additive congruence relation generated by a normal additive subgroup."]
 protected def con : Con G where
@@ -70,6 +69,7 @@ protected def con : Con G where
       _ ∈ N := N.mul_mem (nN.conj_mem _ hab _) hcd
 #align quotient_group.con QuotientGroup.con
 #align quotient_add_group.con QuotientAddGroup.con
+-/
 
 #print QuotientGroup.Quotient.group /-
 @[to_additive]
@@ -88,30 +88,38 @@ def mk' : G →* G ⧸ N :=
 #align quotient_add_group.mk' QuotientAddGroup.mk'
 -/
 
+#print QuotientGroup.coe_mk' /-
 @[simp, to_additive]
 theorem coe_mk' : (mk' N : G → G ⧸ N) = coe :=
   rfl
 #align quotient_group.coe_mk' QuotientGroup.coe_mk'
 #align quotient_add_group.coe_mk' QuotientAddGroup.coe_mk'
+-/
 
+#print QuotientGroup.mk'_apply /-
 @[simp, to_additive]
 theorem mk'_apply (x : G) : mk' N x = x :=
   rfl
 #align quotient_group.mk'_apply QuotientGroup.mk'_apply
 #align quotient_add_group.mk'_apply QuotientAddGroup.mk'_apply
+-/
 
+#print QuotientGroup.mk'_surjective /-
 @[to_additive]
 theorem mk'_surjective : Surjective <| mk' N :=
   @mk_surjective _ _ N
 #align quotient_group.mk'_surjective QuotientGroup.mk'_surjective
 #align quotient_add_group.mk'_surjective QuotientAddGroup.mk'_surjective
+-/
 
+#print QuotientGroup.mk'_eq_mk' /-
 @[to_additive]
 theorem mk'_eq_mk' {x y : G} : mk' N x = mk' N y ↔ ∃ z ∈ N, x * z = y :=
   QuotientGroup.eq'.trans <| by
     simp only [← _root_.eq_inv_mul_iff_mul_eq, exists_prop, exists_eq_right]
 #align quotient_group.mk'_eq_mk' QuotientGroup.mk'_eq_mk'
 #align quotient_add_group.mk'_eq_mk' QuotientAddGroup.mk'_eq_mk'
+-/
 
 #print QuotientGroup.monoidHom_ext /-
 /-- Two `monoid_hom`s from a quotient group are equal if their compositions with
@@ -127,6 +135,7 @@ theorem monoidHom_ext ⦃f g : G ⧸ N →* H⦄ (h : f.comp (mk' N) = g.comp (m
 #align quotient_add_group.add_monoid_hom_ext QuotientAddGroup.addMonoidHom_ext
 -/
 
+#print QuotientGroup.eq_one_iff /-
 @[simp, to_additive]
 theorem eq_one_iff {N : Subgroup G} [nN : N.Normal] (x : G) : (x : G ⧸ N) = 1 ↔ x ∈ N :=
   by
@@ -134,6 +143,7 @@ theorem eq_one_iff {N : Subgroup G} [nN : N.Normal] (x : G) : (x : G ⧸ N) = 1
   rw [mul_one, Subgroup.inv_mem_iff]
 #align quotient_group.eq_one_iff QuotientGroup.eq_one_iff
 #align quotient_add_group.eq_zero_iff QuotientAddGroup.eq_zero_iff
+-/
 
 #print QuotientGroup.ker_mk' /-
 @[simp, to_additive]
@@ -143,6 +153,7 @@ theorem ker_mk' : MonoidHom.ker (QuotientGroup.mk' N : G →* G ⧸ N) = N :=
 #align quotient_add_group.ker_mk QuotientAddGroup.ker_mk'
 -/
 
+#print QuotientGroup.eq_iff_div_mem /-
 @[to_additive]
 theorem eq_iff_div_mem {N : Subgroup G} [nN : N.Normal] {x y : G} : (x : G ⧸ N) = y ↔ x / y ∈ N :=
   by
@@ -150,11 +161,10 @@ theorem eq_iff_div_mem {N : Subgroup G} [nN : N.Normal] {x y : G} : (x : G ⧸ N
   rw [nN.mem_comm_iff, div_eq_mul_inv]
 #align quotient_group.eq_iff_div_mem QuotientGroup.eq_iff_div_mem
 #align quotient_add_group.eq_iff_sub_mem QuotientAddGroup.eq_iff_sub_mem
-
--- for commutative groups we don't need normality assumption
-omit nN
+-/
 
 #print QuotientGroup.Quotient.commGroup /-
+-- for commutative groups we don't need normality assumption
 @[to_additive]
 instance Quotient.commGroup {G : Type _} [CommGroup G] (N : Subgroup G) : CommGroup (G ⧸ N) :=
   { @QuotientGroup.Quotient.group _ _ N N.normal_of_comm with
@@ -163,34 +173,39 @@ instance Quotient.commGroup {G : Type _} [CommGroup G] (N : Subgroup G) : CommGr
 #align quotient_add_group.quotient.add_comm_group QuotientAddGroup.Quotient.addCommGroup
 -/
 
-include nN
-
--- mathport name: exprQ
 local notation " Q " => G ⧸ N
 
+#print QuotientGroup.mk_one /-
 @[simp, to_additive]
 theorem mk_one : ((1 : G) :  Q ) = 1 :=
   rfl
 #align quotient_group.coe_one QuotientGroup.mk_one
 #align quotient_add_group.coe_zero QuotientAddGroup.mk_zero
+-/
 
+#print QuotientGroup.mk_mul /-
 @[simp, to_additive]
 theorem mk_mul (a b : G) : ((a * b : G) :  Q ) = a * b :=
   rfl
 #align quotient_group.coe_mul QuotientGroup.mk_mul
 #align quotient_add_group.coe_add QuotientAddGroup.mk_add
+-/
 
+#print QuotientGroup.mk_inv /-
 @[simp, to_additive]
 theorem mk_inv (a : G) : ((a⁻¹ : G) :  Q ) = a⁻¹ :=
   rfl
 #align quotient_group.coe_inv QuotientGroup.mk_inv
 #align quotient_add_group.coe_neg QuotientAddGroup.mk_neg
+-/
 
+#print QuotientGroup.mk_div /-
 @[simp, to_additive]
 theorem mk_div (a b : G) : ((a / b : G) :  Q ) = a / b :=
   rfl
 #align quotient_group.coe_div QuotientGroup.mk_div
 #align quotient_add_group.coe_sub QuotientAddGroup.mk_sub
+-/
 
 #print QuotientGroup.mk_pow /-
 @[simp, to_additive]
@@ -208,6 +223,7 @@ theorem mk_zpow (a : G) (n : ℤ) : ((a ^ n : G) :  Q ) = a ^ n :=
 #align quotient_add_group.coe_zsmul QuotientAddGroup.mk_zsmul
 -/
 
+#print QuotientGroup.lift /-
 /-- A group homomorphism `φ : G →* H` with `N ⊆ ker(φ)` descends (i.e. `lift`s) to a
 group homomorphism `G/N →* H`. -/
 @[to_additive
@@ -221,26 +237,34 @@ def lift (φ : G →* H) (HN : ∀ x ∈ N, φ x = 1) : Q →* H :=
       _ = φ y := by rw [φ.map_mul, HN _ (N.inv_mem h), mul_one]
 #align quotient_group.lift QuotientGroup.lift
 #align quotient_add_group.lift QuotientAddGroup.lift
+-/
 
+#print QuotientGroup.lift_mk /-
 @[simp, to_additive]
 theorem lift_mk {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N φ HN (g :  Q ) = φ g :=
   rfl
 #align quotient_group.lift_mk QuotientGroup.lift_mk
 #align quotient_add_group.lift_mk QuotientAddGroup.lift_mk
+-/
 
+#print QuotientGroup.lift_mk' /-
 @[simp, to_additive]
 theorem lift_mk' {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N φ HN (mk g :  Q ) = φ g :=
   rfl
 #align quotient_group.lift_mk' QuotientGroup.lift_mk'
 #align quotient_add_group.lift_mk' QuotientAddGroup.lift_mk'
+-/
 
+#print QuotientGroup.lift_quot_mk /-
 @[simp, to_additive]
 theorem lift_quot_mk {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) :
     lift N φ HN (Quot.mk _ g :  Q ) = φ g :=
   rfl
 #align quotient_group.lift_quot_mk QuotientGroup.lift_quot_mk
 #align quotient_add_group.lift_quot_mk QuotientAddGroup.lift_quot_mk
+-/
 
+#print QuotientGroup.map /-
 /-- A group homomorphism `f : G →* H` induces a map `G/N →* H/M` if `N ⊆ f⁻¹(M)`. -/
 @[to_additive
       "An `add_group` homomorphism `f : G →+ H` induces a map `G/N →+ H/M` if\n`N ⊆ f⁻¹(M)`."]
@@ -253,35 +277,45 @@ def map (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f) : G ⧸
   exact h hx
 #align quotient_group.map QuotientGroup.map
 #align quotient_add_group.map QuotientAddGroup.map
+-/
 
+#print QuotientGroup.map_mk /-
 @[simp, to_additive]
 theorem map_mk (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f) (x : G) :
     map N M f h ↑x = ↑(f x) :=
   rfl
 #align quotient_group.map_coe QuotientGroup.map_mk
 #align quotient_add_group.map_coe QuotientAddGroup.map_mk
+-/
 
+#print QuotientGroup.map_mk' /-
 @[to_additive]
 theorem map_mk' (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f) (x : G) :
     map N M f h (mk' _ x) = ↑(f x) :=
   rfl
 #align quotient_group.map_mk' QuotientGroup.map_mk'
 #align quotient_add_group.map_mk' QuotientAddGroup.map_mk'
+-/
 
+#print QuotientGroup.map_id_apply /-
 @[to_additive]
 theorem map_id_apply (h : N ≤ Subgroup.comap (MonoidHom.id _) N := (Subgroup.comap_id N).le) (x) :
     map N N (MonoidHom.id _) h x = x :=
   induction_on' x fun x => rfl
 #align quotient_group.map_id_apply QuotientGroup.map_id_apply
 #align quotient_add_group.map_id_apply QuotientAddGroup.map_id_apply
+-/
 
+#print QuotientGroup.map_id /-
 @[simp, to_additive]
 theorem map_id (h : N ≤ Subgroup.comap (MonoidHom.id _) N := (Subgroup.comap_id N).le) :
     map N N (MonoidHom.id _) h = MonoidHom.id _ :=
   MonoidHom.ext (map_id_apply N h)
 #align quotient_group.map_id QuotientGroup.map_id
 #align quotient_add_group.map_id QuotientAddGroup.map_id
+-/
 
+#print QuotientGroup.map_map /-
 @[simp, to_additive]
 theorem map_map {I : Type _} [Group I] (M : Subgroup H) (O : Subgroup I) [M.Normal] [O.Normal]
     (f : G →* H) (g : H →* I) (hf : N ≤ Subgroup.comap f M) (hg : M ≤ Subgroup.comap g O)
@@ -293,7 +327,9 @@ theorem map_map {I : Type _} [Group I] (M : Subgroup H) (O : Subgroup I) [M.Norm
   simp only [map_coe, MonoidHom.comp_apply]
 #align quotient_group.map_map QuotientGroup.map_map
 #align quotient_add_group.map_map QuotientAddGroup.map_map
+-/
 
+#print QuotientGroup.map_comp_map /-
 @[simp, to_additive]
 theorem map_comp_map {I : Type _} [Group I] (M : Subgroup H) (O : Subgroup I) [M.Normal] [O.Normal]
     (f : G →* H) (g : H →* I) (hf : N ≤ Subgroup.comap f M) (hg : M ≤ Subgroup.comap g O)
@@ -303,13 +339,13 @@ theorem map_comp_map {I : Type _} [Group I] (M : Subgroup H) (O : Subgroup I) [M
   MonoidHom.ext (map_map N M O f g hf hg hgf)
 #align quotient_group.map_comp_map QuotientGroup.map_comp_map
 #align quotient_add_group.map_comp_map QuotientAddGroup.map_comp_map
-
-omit nN
+-/
 
 section congr
 
 variable (G' : Subgroup G) (H' : Subgroup H) [Subgroup.Normal G'] [Subgroup.Normal H']
 
+#print QuotientGroup.congr /-
 /-- `quotient_group.congr` lifts the isomorphism `e : G ≃ H` to `G ⧸ G' ≃ H ⧸ H'`,
 given that `e` maps `G` to `H`. -/
 @[to_additive
@@ -333,33 +369,44 @@ def congr (e : G ≃* H) (he : G'.map ↑e = H') : G ⧸ G' ≃* H ⧸ H' :=
           MulEquiv.coe_monoidHom_refl, map_id_apply] }
 #align quotient_group.congr QuotientGroup.congr
 #align quotient_add_group.congr QuotientAddGroup.congr
+-/
 
+#print QuotientGroup.congr_mk /-
 @[simp]
 theorem congr_mk (e : G ≃* H) (he : G'.map ↑e = H') (x) : congr G' H' e he (mk x) = e x :=
   rfl
 #align quotient_group.congr_mk QuotientGroup.congr_mk
+-/
 
+#print QuotientGroup.congr_mk' /-
 theorem congr_mk' (e : G ≃* H) (he : G'.map ↑e = H') (x) :
     congr G' H' e he (mk' G' x) = mk' H' (e x) :=
   rfl
 #align quotient_group.congr_mk' QuotientGroup.congr_mk'
+-/
 
+#print QuotientGroup.congr_apply /-
 @[simp]
 theorem congr_apply (e : G ≃* H) (he : G'.map ↑e = H') (x : G) :
     congr G' H' e he x = mk' H' (e x) :=
   rfl
 #align quotient_group.congr_apply QuotientGroup.congr_apply
+-/
 
+#print QuotientGroup.congr_refl /-
 @[simp]
 theorem congr_refl (he : G'.map (MulEquiv.refl G : G →* G) = G' := Subgroup.map_id G') :
     congr G' G' (MulEquiv.refl G) he = MulEquiv.refl (G ⧸ G') := by ext ⟨x⟩; rfl
 #align quotient_group.congr_refl QuotientGroup.congr_refl
+-/
 
+#print QuotientGroup.congr_symm /-
 @[simp]
 theorem congr_symm (e : G ≃* H) (he : G'.map ↑e = H') :
     (congr G' H' e he).symm = congr H' G' e.symm ((Subgroup.map_symm_eq_iff_map_eq _).mpr he) :=
   rfl
 #align quotient_group.congr_symm QuotientGroup.congr_symm
+-/
 
 end congr
 
@@ -376,25 +423,32 @@ def kerLift : G ⧸ ker φ →* H :=
 #align quotient_add_group.ker_lift QuotientAddGroup.kerLift
 -/
 
+#print QuotientGroup.kerLift_mk /-
 @[simp, to_additive]
 theorem kerLift_mk (g : G) : (kerLift φ) g = φ g :=
   lift_mk _ _ _
 #align quotient_group.ker_lift_mk QuotientGroup.kerLift_mk
 #align quotient_add_group.ker_lift_mk QuotientAddGroup.kerLift_mk
+-/
 
+#print QuotientGroup.kerLift_mk' /-
 @[simp, to_additive]
 theorem kerLift_mk' (g : G) : (kerLift φ) (mk g) = φ g :=
   lift_mk' _ _ _
 #align quotient_group.ker_lift_mk' QuotientGroup.kerLift_mk'
 #align quotient_add_group.ker_lift_mk' QuotientAddGroup.kerLift_mk'
+-/
 
+#print QuotientGroup.kerLift_injective /-
 @[to_additive]
 theorem kerLift_injective : Injective (kerLift φ) := fun a b =>
   Quotient.inductionOn₂' a b fun a b (h : φ a = φ b) =>
     Quotient.sound' <| by rw [left_rel_apply, mem_ker, φ.map_mul, ← h, φ.map_inv, inv_mul_self]
 #align quotient_group.ker_lift_injective QuotientGroup.kerLift_injective
 #align quotient_add_group.ker_lift_injective QuotientAddGroup.kerLift_injective
+-/
 
+#print QuotientGroup.rangeKerLift /-
 -- Note that `ker φ` isn't definitionally `ker (φ.range_restrict)`
 -- so there is a bit of annoying code duplication here
 /-- The induced map from the quotient by the kernel to the range. -/
@@ -403,7 +457,9 @@ def rangeKerLift : G ⧸ ker φ →* φ.range :=
   lift _ φ.range_restrict fun g hg => (mem_ker _).mp <| by rwa [ker_range_restrict]
 #align quotient_group.range_ker_lift QuotientGroup.rangeKerLift
 #align quotient_add_group.range_ker_lift QuotientAddGroup.rangeKerLift
+-/
 
+#print QuotientGroup.rangeKerLift_injective /-
 @[to_additive]
 theorem rangeKerLift_injective : Injective (rangeKerLift φ) := fun a b =>
   Quotient.inductionOn₂' a b fun a b (h : φ.range_restrict a = φ.range_restrict b) =>
@@ -412,7 +468,9 @@ theorem rangeKerLift_injective : Injective (rangeKerLift φ) := fun a b =>
         φ.range_restrict.map_inv, inv_mul_self]
 #align quotient_group.range_ker_lift_injective QuotientGroup.rangeKerLift_injective
 #align quotient_add_group.range_ker_lift_injective QuotientAddGroup.rangeKerLift_injective
+-/
 
+#print QuotientGroup.rangeKerLift_surjective /-
 @[to_additive]
 theorem rangeKerLift_surjective : Surjective (rangeKerLift φ) :=
   by
@@ -421,7 +479,9 @@ theorem rangeKerLift_surjective : Surjective (rangeKerLift φ) :=
   rfl
 #align quotient_group.range_ker_lift_surjective QuotientGroup.rangeKerLift_surjective
 #align quotient_add_group.range_ker_lift_surjective QuotientAddGroup.rangeKerLift_surjective
+-/
 
+#print QuotientGroup.quotientKerEquivRange /-
 /-- **Noether's first isomorphism theorem** (a definition): the canonical isomorphism between
 `G/(ker φ)` to `range φ`. -/
 @[to_additive
@@ -430,7 +490,9 @@ noncomputable def quotientKerEquivRange : G ⧸ ker φ ≃* range φ :=
   MulEquiv.ofBijective (rangeKerLift φ) ⟨rangeKerLift_injective φ, rangeKerLift_surjective φ⟩
 #align quotient_group.quotient_ker_equiv_range QuotientGroup.quotientKerEquivRange
 #align quotient_add_group.quotient_ker_equiv_range QuotientAddGroup.quotientKerEquivRange
+-/
 
+#print QuotientGroup.quotientKerEquivOfRightInverse /-
 /-- The canonical isomorphism `G/(ker φ) ≃* H` induced by a homomorphism `φ : G →* H`
 with a right inverse `ψ : H → G`. -/
 @[to_additive
@@ -444,14 +506,18 @@ def quotientKerEquivOfRightInverse (ψ : H → G) (hφ : RightInverse ψ φ) : G
     right_inv := hφ }
 #align quotient_group.quotient_ker_equiv_of_right_inverse QuotientGroup.quotientKerEquivOfRightInverse
 #align quotient_add_group.quotient_ker_equiv_of_right_inverse QuotientAddGroup.quotientKerEquivOfRightInverse
+-/
 
+#print QuotientGroup.quotientBot /-
 /-- The canonical isomorphism `G/⊥ ≃* G`. -/
 @[to_additive "The canonical isomorphism `G/⊥ ≃+ G`.", simps]
 def quotientBot : G ⧸ (⊥ : Subgroup G) ≃* G :=
   quotientKerEquivOfRightInverse (MonoidHom.id G) id fun x => rfl
 #align quotient_group.quotient_bot QuotientGroup.quotientBot
 #align quotient_add_group.quotient_bot QuotientAddGroup.quotientBot
+-/
 
+#print QuotientGroup.quotientKerEquivOfSurjective /-
 /-- The canonical isomorphism `G/(ker φ) ≃* H` induced by a surjection `φ : G →* H`.
 
 For a `computable` version, see `quotient_group.quotient_ker_equiv_of_right_inverse`.
@@ -462,7 +528,9 @@ noncomputable def quotientKerEquivOfSurjective (hφ : Surjective φ) : G ⧸ ker
   quotientKerEquivOfRightInverse φ _ hφ.HasRightInverse.choose_spec
 #align quotient_group.quotient_ker_equiv_of_surjective QuotientGroup.quotientKerEquivOfSurjective
 #align quotient_add_group.quotient_ker_equiv_of_surjective QuotientAddGroup.quotientKerEquivOfSurjective
+-/
 
+#print QuotientGroup.quotientMulEquivOfEq /-
 /-- If two normal subgroups `M` and `N` of `G` are the same, their quotient groups are
 isomorphic. -/
 @[to_additive
@@ -472,14 +540,18 @@ def quotientMulEquivOfEq {M N : Subgroup G} [M.Normal] [N.Normal] (h : M = N) :
     map_mul' := fun q r => Quotient.inductionOn₂' q r fun g h => rfl }
 #align quotient_group.quotient_mul_equiv_of_eq QuotientGroup.quotientMulEquivOfEq
 #align quotient_add_group.quotient_add_equiv_of_eq QuotientAddGroup.quotientAddEquivOfEq
+-/
 
+#print QuotientGroup.quotientMulEquivOfEq_mk /-
 @[simp, to_additive]
 theorem quotientMulEquivOfEq_mk {M N : Subgroup G} [M.Normal] [N.Normal] (h : M = N) (x : G) :
     QuotientGroup.quotientMulEquivOfEq h (QuotientGroup.mk x) = QuotientGroup.mk x :=
   rfl
 #align quotient_group.quotient_mul_equiv_of_eq_mk QuotientGroup.quotientMulEquivOfEq_mk
 #align quotient_add_group.quotient_add_equiv_of_eq_mk QuotientAddGroup.quotientAddEquivOfEq_mk
+-/
 
+#print QuotientGroup.quotientMapSubgroupOfOfLe /-
 /-- Let `A', A, B', B` be subgroups of `G`. If `A' ≤ B'` and `A ≤ B`,
 then there is a map `A / (A' ⊓ A) →* B / (B' ⊓ B)` induced by the inclusions. -/
 @[to_additive
@@ -490,7 +562,9 @@ def quotientMapSubgroupOfOfLe {A' A B' B : Subgroup G} [hAN : (A'.subgroupOf A).
   map _ _ (Subgroup.inclusion h) <| Subgroup.comap_mono h'
 #align quotient_group.quotient_map_subgroup_of_of_le QuotientGroup.quotientMapSubgroupOfOfLe
 #align quotient_add_group.quotient_map_add_subgroup_of_of_le QuotientAddGroup.quotientMapAddSubgroupOfOfLe
+-/
 
+#print QuotientGroup.quotientMapSubgroupOfOfLe_mk /-
 @[simp, to_additive]
 theorem quotientMapSubgroupOfOfLe_mk {A' A B' B : Subgroup G} [hAN : (A'.subgroupOf A).Normal]
     [hBN : (B'.subgroupOf B).Normal] (h' : A' ≤ B') (h : A ≤ B) (x : A) :
@@ -498,7 +572,9 @@ theorem quotientMapSubgroupOfOfLe_mk {A' A B' B : Subgroup G} [hAN : (A'.subgrou
   rfl
 #align quotient_group.quotient_map_subgroup_of_of_le_coe QuotientGroup.quotientMapSubgroupOfOfLe_mk
 #align quotient_add_group.quotient_map_add_subgroup_of_of_le_coe QuotientAddGroup.quotientMapAddSubgroupOfOfLe_mk
+-/
 
+#print QuotientGroup.equivQuotientSubgroupOfOfEq /-
 /-- Let `A', A, B', B` be subgroups of `G`.
 If `A' = B'` and `A = B`, then the quotients `A / (A' ⊓ A)` and `B / (B' ⊓ B)` are isomorphic.
 
@@ -514,6 +590,7 @@ def equivQuotientSubgroupOfOfEq {A' A B' B : Subgroup G} [hAN : (A'.subgroupOf A
     (by ext ⟨x, hx⟩; rfl) (by ext ⟨x, hx⟩; rfl)
 #align quotient_group.equiv_quotient_subgroup_of_of_eq QuotientGroup.equivQuotientSubgroupOfOfEq
 #align quotient_add_group.equiv_quotient_add_subgroup_of_of_eq QuotientAddGroup.equivQuotientAddSubgroupOfOfEq
+-/
 
 section Zpow
 
@@ -551,13 +628,16 @@ theorem homQuotientZPowOfHom_comp :
 #align quotient_add_group.hom_quotient_zsmul_of_hom_comp QuotientAddGroup.homQuotientZSMulOfHom_comp
 -/
 
+#print QuotientGroup.homQuotientZPowOfHom_comp_of_rightInverse /-
 @[simp, to_additive]
 theorem homQuotientZPowOfHom_comp_of_rightInverse (i : Function.RightInverse g f) :
     (homQuotientZPowOfHom f n).comp (homQuotientZPowOfHom g n) = MonoidHom.id _ :=
   monoidHom_ext _ <| MonoidHom.ext fun x => congr_arg coe <| i x
 #align quotient_group.hom_quotient_zpow_of_hom_comp_of_right_inverse QuotientGroup.homQuotientZPowOfHom_comp_of_rightInverse
 #align quotient_add_group.hom_quotient_zsmul_of_hom_comp_of_right_inverse QuotientAddGroup.homQuotientZSMulOfHom_comp_of_rightInverse
+-/
 
+#print QuotientGroup.equivQuotientZPowOfEquiv /-
 /-- The equivalence of quotients by powers of an integer induced by a group isomorphism. -/
 @[to_additive
       "The equivalence of quotients by multiples of an integer induced by an additive group\nisomorphism."]
@@ -567,7 +647,9 @@ def equivQuotientZPowOfEquiv :
     (homQuotientZPowOfHom_comp_of_rightInverse e e.symm n e.right_inv)
 #align quotient_group.equiv_quotient_zpow_of_equiv QuotientGroup.equivQuotientZPowOfEquiv
 #align quotient_add_group.equiv_quotient_zsmul_of_equiv QuotientAddGroup.equivQuotientZSMulOfEquiv
+-/
 
+#print QuotientGroup.equivQuotientZPowOfEquiv_refl /-
 @[simp, to_additive]
 theorem equivQuotientZPowOfEquiv_refl :
     MulEquiv.refl (A ⧸ (zpowGroupHom n : A →* A).range) =
@@ -575,14 +657,18 @@ theorem equivQuotientZPowOfEquiv_refl :
   by ext x; rw [← Quotient.out_eq' x]; rfl
 #align quotient_group.equiv_quotient_zpow_of_equiv_refl QuotientGroup.equivQuotientZPowOfEquiv_refl
 #align quotient_add_group.equiv_quotient_zsmul_of_equiv_refl QuotientAddGroup.equivQuotientZSMulOfEquiv_refl
+-/
 
+#print QuotientGroup.equivQuotientZPowOfEquiv_symm /-
 @[simp, to_additive]
 theorem equivQuotientZPowOfEquiv_symm :
     (equivQuotientZPowOfEquiv e n).symm = equivQuotientZPowOfEquiv e.symm n :=
   rfl
 #align quotient_group.equiv_quotient_zpow_of_equiv_symm QuotientGroup.equivQuotientZPowOfEquiv_symm
 #align quotient_add_group.equiv_quotient_zsmul_of_equiv_symm QuotientAddGroup.equivQuotientZSMulOfEquiv_symm
+-/
 
+#print QuotientGroup.equivQuotientZPowOfEquiv_trans /-
 @[simp, to_additive]
 theorem equivQuotientZPowOfEquiv_trans :
     (equivQuotientZPowOfEquiv e n).trans (equivQuotientZPowOfEquiv d n) =
@@ -590,6 +676,7 @@ theorem equivQuotientZPowOfEquiv_trans :
   by ext x; rw [← Quotient.out_eq' x]; rfl
 #align quotient_group.equiv_quotient_zpow_of_equiv_trans QuotientGroup.equivQuotientZPowOfEquiv_trans
 #align quotient_add_group.equiv_quotient_zsmul_of_equiv_trans QuotientAddGroup.equivQuotientZSMulOfEquiv_trans
+-/
 
 end Zpow
 
@@ -597,6 +684,7 @@ section SndIsomorphismThm
 
 open _Root_.Subgroup
 
+#print QuotientGroup.quotientInfEquivProdNormalQuotient /-
 /-- **Noether's second isomorphism theorem**: given two subgroups `H` and `N` of a group `G`, where
 `N` is normal, defines an isomorphism between `H/(H ∩ N)` and `(HN)/N`. -/
 @[to_additive
@@ -620,6 +708,7 @@ noncomputable def quotientInfEquivProdNormalQuotient (H N : Subgroup G) [N.Norma
   (quotientMulEquivOfEq (by simp [← comap_ker])).trans (quotientKerEquivOfSurjective φ φ_surjective)
 #align quotient_group.quotient_inf_equiv_prod_normal_quotient QuotientGroup.quotientInfEquivProdNormalQuotient
 #align quotient_add_group.quotient_inf_equiv_sum_normal_quotient QuotientAddGroup.quotientInfEquivSumNormalQuotient
+-/
 
 end SndIsomorphismThm
 
@@ -627,8 +716,6 @@ section ThirdIsoThm
 
 variable (M : Subgroup G) [nM : M.Normal]
 
-include nM nN
-
 #print QuotientGroup.map_normal /-
 @[to_additive]
 instance map_normal : (M.map (QuotientGroup.mk' N)).Normal :=
@@ -639,6 +726,7 @@ instance map_normal : (M.map (QuotientGroup.mk' N)).Normal :=
 
 variable (h : N ≤ M)
 
+#print QuotientGroup.quotientQuotientEquivQuotientAux /-
 /-- The map from the third isomorphism theorem for groups: `(G / N) / (M / N) → G / M`. -/
 @[to_additive
       "The map from the third isomorphism theorem for additive groups:\n`(A / N) / (M / N) → A / M`."]
@@ -649,21 +737,27 @@ def quotientQuotientEquivQuotientAux : (G ⧸ N) ⧸ M.map (mk' N) →* G ⧸ M
       exact (QuotientGroup.eq_one_iff _).mpr hx)
 #align quotient_group.quotient_quotient_equiv_quotient_aux QuotientGroup.quotientQuotientEquivQuotientAux
 #align quotient_add_group.quotient_quotient_equiv_quotient_aux QuotientAddGroup.quotientQuotientEquivQuotientAux
+-/
 
+#print QuotientGroup.quotientQuotientEquivQuotientAux_mk /-
 @[simp, to_additive]
 theorem quotientQuotientEquivQuotientAux_mk (x : G ⧸ N) :
     quotientQuotientEquivQuotientAux N M h x = QuotientGroup.map N M (MonoidHom.id G) h x :=
   QuotientGroup.lift_mk' _ _ x
 #align quotient_group.quotient_quotient_equiv_quotient_aux_coe QuotientGroup.quotientQuotientEquivQuotientAux_mk
 #align quotient_add_group.quotient_quotient_equiv_quotient_aux_coe QuotientAddGroup.quotientQuotientEquivQuotientAux_mk
+-/
 
+#print QuotientGroup.quotientQuotientEquivQuotientAux_mk_mk /-
 @[to_additive]
 theorem quotientQuotientEquivQuotientAux_mk_mk (x : G) :
     quotientQuotientEquivQuotientAux N M h (x : G ⧸ N) = x :=
   QuotientGroup.lift_mk' _ _ x
 #align quotient_group.quotient_quotient_equiv_quotient_aux_coe_coe QuotientGroup.quotientQuotientEquivQuotientAux_mk_mk
 #align quotient_add_group.quotient_quotient_equiv_quotient_aux_coe_coe QuotientAddGroup.quotientQuotientEquivQuotientAux_mk_mk
+-/
 
+#print QuotientGroup.quotientQuotientEquivQuotient /-
 /-- **Noether's third isomorphism theorem** for groups: `(G / N) / (M / N) ≃* G / M`. -/
 @[to_additive
       "**Noether's third isomorphism theorem** for additive groups:\n`(A / N) / (M / N) ≃+ A / M`."]
@@ -673,11 +767,13 @@ def quotientQuotientEquivQuotient : (G ⧸ N) ⧸ M.map (QuotientGroup.mk' N) 
     (by ext; simp)
 #align quotient_group.quotient_quotient_equiv_quotient QuotientGroup.quotientQuotientEquivQuotient
 #align quotient_add_group.quotient_quotient_equiv_quotient QuotientAddGroup.quotientQuotientEquivQuotient
+-/
 
 end ThirdIsoThm
 
 section trivial
 
+#print QuotientGroup.subsingleton_quotient_top /-
 @[to_additive]
 theorem subsingleton_quotient_top : Subsingleton (G ⧸ (⊤ : Subgroup G)) :=
   by
@@ -686,7 +782,9 @@ theorem subsingleton_quotient_top : Subsingleton (G ⧸ (⊤ : Subgroup G)) :=
   exact @Trunc.subsingleton G
 #align quotient_group.subsingleton_quotient_top QuotientGroup.subsingleton_quotient_top
 #align quotient_add_group.subsingleton_quotient_top QuotientAddGroup.subsingleton_quotient_top
+-/
 
+#print QuotientGroup.subgroup_eq_top_of_subsingleton /-
 /-- If the quotient by a subgroup gives a singleton then the subgroup is the whole group. -/
 @[to_additive
       "If the quotient by an additive subgroup gives a singleton then the additive subgroup\nis the whole additive group."]
@@ -697,6 +795,7 @@ theorem subgroup_eq_top_of_subsingleton (H : Subgroup G) (h : Subsingleton (G 
     rwa [inv_one, one_mul] at this 
 #align quotient_group.subgroup_eq_top_of_subsingleton QuotientGroup.subgroup_eq_top_of_subsingleton
 #align quotient_add_group.add_subgroup_eq_top_of_subsingleton QuotientAddGroup.addSubgroup_eq_top_of_subsingleton
+-/
 
 end trivial
 
@@ -725,6 +824,7 @@ variable {F G H : Type u} [Group F] [Group G] [Group H] [Fintype F] [Fintype H]
 
 variable (f : F →* G) (g : G →* H)
 
+#print Group.fintypeOfKerLeRange /-
 /-- If `F` and `H` are finite such that `ker(G →* H) ≤ im(F →* G)`, then `G` is finite. -/
 @[to_additive "If `F` and `H` are finite such that `ker(G →+ H) ≤ im(F →+ G)`, then `G` is finite."]
 noncomputable def fintypeOfKerLeRange (h : g.ker ≤ f.range) : Fintype G :=
@@ -734,6 +834,7 @@ noncomputable def fintypeOfKerLeRange (h : g.ker ≤ f.range) : Fintype G :=
     groupEquivQuotientProdSubgroup.symm
 #align group.fintype_of_ker_le_range Group.fintypeOfKerLeRange
 #align add_group.fintype_of_ker_le_range AddGroup.fintypeOfKerLeRange
+-/
 
 #print Group.fintypeOfKerEqRange /-
 /-- If `F` and `H` are finite such that `ker(G →* H) = im(F →* G)`, then `G` is finite. -/
@@ -744,6 +845,7 @@ noncomputable def fintypeOfKerEqRange (h : g.ker = f.range) : Fintype G :=
 #align add_group.fintype_of_ker_eq_range AddGroup.fintypeOfKerEqRange
 -/
 
+#print Group.fintypeOfKerOfCodom /-
 /-- If `ker(G →* H)` and `H` are finite, then `G` is finite. -/
 @[to_additive "If `ker(G →+ H)` and `H` are finite, then `G` is finite."]
 noncomputable def fintypeOfKerOfCodom [Fintype g.ker] : Fintype G :=
@@ -751,6 +853,7 @@ noncomputable def fintypeOfKerOfCodom [Fintype g.ker] : Fintype G :=
     ⟨⟨x, hx⟩, rfl⟩
 #align group.fintype_of_ker_of_codom Group.fintypeOfKerOfCodom
 #align add_group.fintype_of_ker_of_codom AddGroup.fintypeOfKerOfCodom
+-/
 
 #print Group.fintypeOfDomOfCoker /-
 /-- If `F` and `coker(F →* G)` are finite, then `G` is finite. -/
Diff
@@ -68,7 +68,6 @@ protected def con : Con G where
       (a * c)⁻¹ * (b * d) = c⁻¹ * (a⁻¹ * b) * c⁻¹⁻¹ * (c⁻¹ * d) := by
         simp only [mul_inv_rev, mul_assoc, inv_mul_cancel_left]
       _ ∈ N := N.mul_mem (nN.conj_mem _ hab _) hcd
-      
 #align quotient_group.con QuotientGroup.con
 #align quotient_add_group.con QuotientAddGroup.con
 
@@ -220,7 +219,6 @@ def lift (φ : G →* H) (HN : ∀ x ∈ N, φ x = 1) : Q →* H :=
     calc
       φ x = φ (y * (x⁻¹ * y)⁻¹) := by rw [mul_inv_rev, inv_inv, mul_inv_cancel_left]
       _ = φ y := by rw [φ.map_mul, HN _ (N.inv_mem h), mul_one]
-      
 #align quotient_group.lift QuotientGroup.lift
 #align quotient_add_group.lift QuotientAddGroup.lift
 
Diff
@@ -63,7 +63,7 @@ include nN
 protected def con : Con G where
   toSetoid := leftRel N
   mul' a b c d hab hcd := by
-    rw [left_rel_eq] at hab hcd⊢
+    rw [left_rel_eq] at hab hcd ⊢
     calc
       (a * c)⁻¹ * (b * d) = c⁻¹ * (a⁻¹ * b) * c⁻¹⁻¹ * (c⁻¹ * d) := by
         simp only [mul_inv_rev, mul_assoc, inv_mul_cancel_left]
@@ -170,32 +170,32 @@ include nN
 local notation " Q " => G ⧸ N
 
 @[simp, to_additive]
-theorem mk_one : ((1 : G) : Q ) = 1 :=
+theorem mk_one : ((1 : G) :  Q ) = 1 :=
   rfl
 #align quotient_group.coe_one QuotientGroup.mk_one
 #align quotient_add_group.coe_zero QuotientAddGroup.mk_zero
 
 @[simp, to_additive]
-theorem mk_mul (a b : G) : ((a * b : G) : Q ) = a * b :=
+theorem mk_mul (a b : G) : ((a * b : G) :  Q ) = a * b :=
   rfl
 #align quotient_group.coe_mul QuotientGroup.mk_mul
 #align quotient_add_group.coe_add QuotientAddGroup.mk_add
 
 @[simp, to_additive]
-theorem mk_inv (a : G) : ((a⁻¹ : G) : Q ) = a⁻¹ :=
+theorem mk_inv (a : G) : ((a⁻¹ : G) :  Q ) = a⁻¹ :=
   rfl
 #align quotient_group.coe_inv QuotientGroup.mk_inv
 #align quotient_add_group.coe_neg QuotientAddGroup.mk_neg
 
 @[simp, to_additive]
-theorem mk_div (a b : G) : ((a / b : G) : Q ) = a / b :=
+theorem mk_div (a b : G) : ((a / b : G) :  Q ) = a / b :=
   rfl
 #align quotient_group.coe_div QuotientGroup.mk_div
 #align quotient_add_group.coe_sub QuotientAddGroup.mk_sub
 
 #print QuotientGroup.mk_pow /-
 @[simp, to_additive]
-theorem mk_pow (a : G) (n : ℕ) : ((a ^ n : G) : Q ) = a ^ n :=
+theorem mk_pow (a : G) (n : ℕ) : ((a ^ n : G) :  Q ) = a ^ n :=
   rfl
 #align quotient_group.coe_pow QuotientGroup.mk_pow
 #align quotient_add_group.coe_nsmul QuotientAddGroup.mk_nsmul
@@ -203,7 +203,7 @@ theorem mk_pow (a : G) (n : ℕ) : ((a ^ n : G) : Q ) = a ^ n :=
 
 #print QuotientGroup.mk_zpow /-
 @[simp, to_additive]
-theorem mk_zpow (a : G) (n : ℤ) : ((a ^ n : G) : Q ) = a ^ n :=
+theorem mk_zpow (a : G) (n : ℤ) : ((a ^ n : G) :  Q ) = a ^ n :=
   rfl
 #align quotient_group.coe_zpow QuotientGroup.mk_zpow
 #align quotient_add_group.coe_zsmul QuotientAddGroup.mk_zsmul
@@ -216,7 +216,7 @@ group homomorphism `G/N →* H`. -/
 def lift (φ : G →* H) (HN : ∀ x ∈ N, φ x = 1) : Q →* H :=
   (QuotientGroup.con N).lift φ fun x y h =>
     by
-    simp only [QuotientGroup.con, left_rel_apply, Con.rel_mk] at h
+    simp only [QuotientGroup.con, left_rel_apply, Con.rel_mk] at h 
     calc
       φ x = φ (y * (x⁻¹ * y)⁻¹) := by rw [mul_inv_rev, inv_inv, mul_inv_cancel_left]
       _ = φ y := by rw [φ.map_mul, HN _ (N.inv_mem h), mul_one]
@@ -225,20 +225,20 @@ def lift (φ : G →* H) (HN : ∀ x ∈ N, φ x = 1) : Q →* H :=
 #align quotient_add_group.lift QuotientAddGroup.lift
 
 @[simp, to_additive]
-theorem lift_mk {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N φ HN (g : Q ) = φ g :=
+theorem lift_mk {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N φ HN (g :  Q ) = φ g :=
   rfl
 #align quotient_group.lift_mk QuotientGroup.lift_mk
 #align quotient_add_group.lift_mk QuotientAddGroup.lift_mk
 
 @[simp, to_additive]
-theorem lift_mk' {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N φ HN (mk g : Q ) = φ g :=
+theorem lift_mk' {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N φ HN (mk g :  Q ) = φ g :=
   rfl
 #align quotient_group.lift_mk' QuotientGroup.lift_mk'
 #align quotient_add_group.lift_mk' QuotientAddGroup.lift_mk'
 
 @[simp, to_additive]
 theorem lift_quot_mk {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) :
-    lift N φ HN (Quot.mk _ g : Q ) = φ g :=
+    lift N φ HN (Quot.mk _ g :  Q ) = φ g :=
   rfl
 #align quotient_group.lift_quot_mk QuotientGroup.lift_quot_mk
 #align quotient_add_group.lift_quot_mk QuotientAddGroup.lift_quot_mk
@@ -530,7 +530,7 @@ variable (f : A →* B) (g : B →* A) (e : A ≃* B) (d : B ≃* C) (n : ℤ)
 def homQuotientZPowOfHom :
     A ⧸ (zpowGroupHom n : A →* A).range →* B ⧸ (zpowGroupHom n : B →* B).range :=
   lift _ ((mk' _).comp f) fun g ⟨h, (hg : h ^ n = g)⟩ =>
-    (eq_one_iff _).mpr ⟨_, by simpa only [← hg, map_zpow] ⟩
+    (eq_one_iff _).mpr ⟨_, by simpa only [← hg, map_zpow]⟩
 #align quotient_group.hom_quotient_zpow_of_hom QuotientGroup.homQuotientZPowOfHom
 #align quotient_add_group.hom_quotient_zsmul_of_hom QuotientAddGroup.homQuotientZSMulOfHom
 -/
@@ -612,7 +612,7 @@ noncomputable def quotientInfEquivProdNormalQuotient (H N : Subgroup G) [N.Norma
     (mk' <| N.subgroupOf (H ⊔ N)).comp (inclusion le_sup_left)
   have φ_surjective : Surjective φ := fun x =>
     x.inductionOn' <| by
-      rintro ⟨y, hy : y ∈ ↑(H ⊔ N)⟩; rw [mul_normal H N] at hy
+      rintro ⟨y, hy : y ∈ ↑(H ⊔ N)⟩; rw [mul_normal H N] at hy 
       rcases hy with ⟨h, n, hh, hn, rfl⟩
       use h, hh; apply quotient.eq.mpr
       change Setoid.r _ _
@@ -696,7 +696,7 @@ theorem subgroup_eq_top_of_subsingleton (H : Subgroup G) (h : Subsingleton (G 
   top_unique fun x _ =>
     by
     have this : 1⁻¹ * x ∈ H := QuotientGroup.eq.1 (Subsingleton.elim _ _)
-    rwa [inv_one, one_mul] at this
+    rwa [inv_one, one_mul] at this 
 #align quotient_group.subgroup_eq_top_of_subsingleton QuotientGroup.subgroup_eq_top_of_subsingleton
 #align quotient_add_group.add_subgroup_eq_top_of_subsingleton QuotientAddGroup.addSubgroup_eq_top_of_subsingleton
 
Diff
@@ -719,7 +719,7 @@ end QuotientGroup
 
 namespace Group
 
-open Classical
+open scoped Classical
 
 open QuotientGroup Subgroup
 
Diff
@@ -58,12 +58,6 @@ variable {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal] {H : Type v} [G
 
 include nN
 
-/- warning: quotient_group.con -> QuotientGroup.con is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N], Con.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N], Con.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))
-Case conversion may be inaccurate. Consider using '#align quotient_group.con QuotientGroup.conₓ'. -/
 /-- The congruence relation generated by a normal subgroup. -/
 @[to_additive "The additive congruence relation generated by a normal additive subgroup."]
 protected def con : Con G where
@@ -95,45 +89,24 @@ def mk' : G →* G ⧸ N :=
 #align quotient_add_group.mk' QuotientAddGroup.mk'
 -/
 
-/- warning: quotient_group.coe_mk' -> QuotientGroup.coe_mk' is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N], Eq.{succ u1} ((fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (QuotientGroup.mk'.{u1} G _inst_1 N nN)) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N], Eq.{succ u1} (forall (a : G), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) a) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN)) (QuotientGroup.mk.{u1} G _inst_1 N)
-Case conversion may be inaccurate. Consider using '#align quotient_group.coe_mk' QuotientGroup.coe_mk'ₓ'. -/
 @[simp, to_additive]
 theorem coe_mk' : (mk' N : G → G ⧸ N) = coe :=
   rfl
 #align quotient_group.coe_mk' QuotientGroup.coe_mk'
 #align quotient_add_group.coe_mk' QuotientAddGroup.coe_mk'
 
-/- warning: quotient_group.mk'_apply -> QuotientGroup.mk'_apply is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (x : G), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) x)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x) (QuotientGroup.mk.{u1} G _inst_1 N x)
-Case conversion may be inaccurate. Consider using '#align quotient_group.mk'_apply QuotientGroup.mk'_applyₓ'. -/
 @[simp, to_additive]
 theorem mk'_apply (x : G) : mk' N x = x :=
   rfl
 #align quotient_group.mk'_apply QuotientGroup.mk'_apply
 #align quotient_add_group.mk'_apply QuotientAddGroup.mk'_apply
 
-/- warning: quotient_group.mk'_surjective -> QuotientGroup.mk'_surjective is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N], Function.Surjective.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N], Function.Surjective.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN))
-Case conversion may be inaccurate. Consider using '#align quotient_group.mk'_surjective QuotientGroup.mk'_surjectiveₓ'. -/
 @[to_additive]
 theorem mk'_surjective : Surjective <| mk' N :=
   @mk_surjective _ _ N
 #align quotient_group.mk'_surjective QuotientGroup.mk'_surjective
 #align quotient_add_group.mk'_surjective QuotientAddGroup.mk'_surjective
 
-/- warning: quotient_group.mk'_eq_mk' -> QuotientGroup.mk'_eq_mk' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.mk'_eq_mk' QuotientGroup.mk'_eq_mk'ₓ'. -/
 @[to_additive]
 theorem mk'_eq_mk' {x y : G} : mk' N x = mk' N y ↔ ∃ z ∈ N, x * z = y :=
   QuotientGroup.eq'.trans <| by
@@ -155,12 +128,6 @@ theorem monoidHom_ext ⦃f g : G ⧸ N →* H⦄ (h : f.comp (mk' N) = g.comp (m
 #align quotient_add_group.add_monoid_hom_ext QuotientAddGroup.addMonoidHom_ext
 -/
 
-/- warning: quotient_group.eq_one_iff -> QuotientGroup.eq_one_iff is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {N : Subgroup.{u1} G _inst_1} [nN : Subgroup.Normal.{u1} G _inst_1 N] (x : G), Iff (Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) x) (OfNat.ofNat.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) 1 (OfNat.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) 1 (One.one.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (MulOneClass.toHasOne.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))))) (Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) x N)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {N : Subgroup.{u1} G _inst_1} [nN : Subgroup.Normal.{u1} G _inst_1 N] (x : G), Iff (Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.mk.{u1} G _inst_1 N x) (OfNat.ofNat.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) 1 (One.toOfNat1.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (InvOneClass.toOne.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvOneMonoid.toInvOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivisionMonoid.toDivInvOneMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivisionMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))))))) (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N)
-Case conversion may be inaccurate. Consider using '#align quotient_group.eq_one_iff QuotientGroup.eq_one_iffₓ'. -/
 @[simp, to_additive]
 theorem eq_one_iff {N : Subgroup G} [nN : N.Normal] (x : G) : (x : G ⧸ N) = 1 ↔ x ∈ N :=
   by
@@ -177,12 +144,6 @@ theorem ker_mk' : MonoidHom.ker (QuotientGroup.mk' N : G →* G ⧸ N) = N :=
 #align quotient_add_group.ker_mk QuotientAddGroup.ker_mk'
 -/
 
-/- warning: quotient_group.eq_iff_div_mem -> QuotientGroup.eq_iff_div_mem is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {N : Subgroup.{u1} G _inst_1} [nN : Subgroup.Normal.{u1} G _inst_1 N] {x : G} {y : G}, Iff (Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) x) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) y)) (Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x y) N)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {N : Subgroup.{u1} G _inst_1} [nN : Subgroup.Normal.{u1} G _inst_1 N] {x : G} {y : G}, Iff (Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.mk.{u1} G _inst_1 N x) (QuotientGroup.mk.{u1} G _inst_1 N y)) (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x y) N)
-Case conversion may be inaccurate. Consider using '#align quotient_group.eq_iff_div_mem QuotientGroup.eq_iff_div_memₓ'. -/
 @[to_additive]
 theorem eq_iff_div_mem {N : Subgroup G} [nN : N.Normal] {x y : G} : (x : G ⧸ N) = y ↔ x / y ∈ N :=
   by
@@ -208,48 +169,24 @@ include nN
 -- mathport name: exprQ
 local notation " Q " => G ⧸ N
 
-/- warning: quotient_group.coe_one -> QuotientGroup.mk_one is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N], Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))))) (OfNat.ofNat.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) 1 (OfNat.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) 1 (One.one.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (MulOneClass.toHasOne.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N], Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.mk.{u1} G _inst_1 N (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (InvOneClass.toOne.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_1))))))) (OfNat.ofNat.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) 1 (One.toOfNat1.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (InvOneClass.toOne.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvOneMonoid.toInvOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivisionMonoid.toDivInvOneMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivisionMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))))))
-Case conversion may be inaccurate. Consider using '#align quotient_group.coe_one QuotientGroup.mk_oneₓ'. -/
 @[simp, to_additive]
 theorem mk_one : ((1 : G) : Q ) = 1 :=
   rfl
 #align quotient_group.coe_one QuotientGroup.mk_one
 #align quotient_add_group.coe_zero QuotientAddGroup.mk_zero
 
-/- warning: quotient_group.coe_mul -> QuotientGroup.mk_mul is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (a : G) (b : G), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) a b)) (HMul.hMul.{u1, u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (instHMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) a) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) b))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (a : G) (b : G), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.mk.{u1} G _inst_1 N (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) a b)) (HMul.hMul.{u1, u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (instHMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))))) (QuotientGroup.mk.{u1} G _inst_1 N a) (QuotientGroup.mk.{u1} G _inst_1 N b))
-Case conversion may be inaccurate. Consider using '#align quotient_group.coe_mul QuotientGroup.mk_mulₓ'. -/
 @[simp, to_additive]
 theorem mk_mul (a b : G) : ((a * b : G) : Q ) = a * b :=
   rfl
 #align quotient_group.coe_mul QuotientGroup.mk_mul
 #align quotient_add_group.coe_add QuotientAddGroup.mk_add
 
-/- warning: quotient_group.coe_inv -> QuotientGroup.mk_inv is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (a : G), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) a)) (Inv.inv.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toHasInv.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) a))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (a : G), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.mk.{u1} G _inst_1 N (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_1)))) a)) (Inv.inv.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (InvOneClass.toInv.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvOneMonoid.toInvOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivisionMonoid.toDivInvOneMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivisionMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.mk.{u1} G _inst_1 N a))
-Case conversion may be inaccurate. Consider using '#align quotient_group.coe_inv QuotientGroup.mk_invₓ'. -/
 @[simp, to_additive]
 theorem mk_inv (a : G) : ((a⁻¹ : G) : Q ) = a⁻¹ :=
   rfl
 #align quotient_group.coe_inv QuotientGroup.mk_inv
 #align quotient_add_group.coe_neg QuotientAddGroup.mk_neg
 
-/- warning: quotient_group.coe_div -> QuotientGroup.mk_div is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (a : G) (b : G), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a b)) (HDiv.hDiv.{u1, u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (instHDiv.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toHasDiv.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) a) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) b))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (a : G) (b : G), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.mk.{u1} G _inst_1 N (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a b)) (HDiv.hDiv.{u1, u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (instHDiv.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toDiv.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.mk.{u1} G _inst_1 N a) (QuotientGroup.mk.{u1} G _inst_1 N b))
-Case conversion may be inaccurate. Consider using '#align quotient_group.coe_div QuotientGroup.mk_divₓ'. -/
 @[simp, to_additive]
 theorem mk_div (a b : G) : ((a / b : G) : Q ) = a / b :=
   rfl
@@ -272,12 +209,6 @@ theorem mk_zpow (a : G) (n : ℤ) : ((a ^ n : G) : Q ) = a ^ n :=
 #align quotient_add_group.coe_zsmul QuotientAddGroup.mk_zsmul
 -/
 
-/- warning: quotient_group.lift -> QuotientGroup.lift is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), (forall (x : G), (Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) x N) -> (Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ x) (OfNat.ofNat.{u2} H 1 (OfNat.mk.{u2} H 1 (One.one.{u2} H (MulOneClass.toHasOne.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))))))) -> (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), (forall (x : G), (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (Group.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) _inst_2)))))))) -> (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))
-Case conversion may be inaccurate. Consider using '#align quotient_group.lift QuotientGroup.liftₓ'. -/
 /-- A group homomorphism `φ : G →* H` with `N ⊆ ker(φ)` descends (i.e. `lift`s) to a
 group homomorphism `G/N →* H`. -/
 @[to_additive
@@ -293,27 +224,18 @@ def lift (φ : G →* H) (HN : ∀ x ∈ N, φ x = 1) : Q →* H :=
 #align quotient_group.lift QuotientGroup.lift
 #align quotient_add_group.lift QuotientAddGroup.lift
 
-/- warning: quotient_group.lift_mk -> QuotientGroup.lift_mk is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.lift_mk QuotientGroup.lift_mkₓ'. -/
 @[simp, to_additive]
 theorem lift_mk {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N φ HN (g : Q ) = φ g :=
   rfl
 #align quotient_group.lift_mk QuotientGroup.lift_mk
 #align quotient_add_group.lift_mk QuotientAddGroup.lift_mk
 
-/- warning: quotient_group.lift_mk' -> QuotientGroup.lift_mk' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.lift_mk' QuotientGroup.lift_mk'ₓ'. -/
 @[simp, to_additive]
 theorem lift_mk' {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N φ HN (mk g : Q ) = φ g :=
   rfl
 #align quotient_group.lift_mk' QuotientGroup.lift_mk'
 #align quotient_add_group.lift_mk' QuotientAddGroup.lift_mk'
 
-/- warning: quotient_group.lift_quot_mk -> QuotientGroup.lift_quot_mk is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.lift_quot_mk QuotientGroup.lift_quot_mkₓ'. -/
 @[simp, to_additive]
 theorem lift_quot_mk {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) :
     lift N φ HN (Quot.mk _ g : Q ) = φ g :=
@@ -321,12 +243,6 @@ theorem lift_quot_mk {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) :
 #align quotient_group.lift_quot_mk QuotientGroup.lift_quot_mk
 #align quotient_add_group.lift_quot_mk QuotientAddGroup.lift_quot_mk
 
-/- warning: quotient_group.map -> QuotientGroup.map is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) -> (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3)))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) -> (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3)))))
-Case conversion may be inaccurate. Consider using '#align quotient_group.map QuotientGroup.mapₓ'. -/
 /-- A group homomorphism `f : G →* H` induces a map `G/N →* H/M` if `N ⊆ f⁻¹(M)`. -/
 @[to_additive
       "An `add_group` homomorphism `f : G →+ H` induces a map `G/N →+ H/M` if\n`N ⊆ f⁻¹(M)`."]
@@ -340,9 +256,6 @@ def map (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f) : G ⧸
 #align quotient_group.map QuotientGroup.map
 #align quotient_add_group.map QuotientAddGroup.map
 
-/- warning: quotient_group.map_coe -> QuotientGroup.map_mk is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.map_coe QuotientGroup.map_mkₓ'. -/
 @[simp, to_additive]
 theorem map_mk (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f) (x : G) :
     map N M f h ↑x = ↑(f x) :=
@@ -350,9 +263,6 @@ theorem map_mk (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f)
 #align quotient_group.map_coe QuotientGroup.map_mk
 #align quotient_add_group.map_coe QuotientAddGroup.map_mk
 
-/- warning: quotient_group.map_mk' -> QuotientGroup.map_mk' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.map_mk' QuotientGroup.map_mk'ₓ'. -/
 @[to_additive]
 theorem map_mk' (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f) (x : G) :
     map N M f h (mk' _ x) = ↑(f x) :=
@@ -360,9 +270,6 @@ theorem map_mk' (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f)
 #align quotient_group.map_mk' QuotientGroup.map_mk'
 #align quotient_add_group.map_mk' QuotientAddGroup.map_mk'
 
-/- warning: quotient_group.map_id_apply -> QuotientGroup.map_id_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.map_id_apply QuotientGroup.map_id_applyₓ'. -/
 @[to_additive]
 theorem map_id_apply (h : N ≤ Subgroup.comap (MonoidHom.id _) N := (Subgroup.comap_id N).le) (x) :
     map N N (MonoidHom.id _) h x = x :=
@@ -370,12 +277,6 @@ theorem map_id_apply (h : N ≤ Subgroup.comap (MonoidHom.id _) N := (Subgroup.c
 #align quotient_group.map_id_apply QuotientGroup.map_id_apply
 #align quotient_add_group.map_id_apply QuotientAddGroup.map_id_apply
 
-/- warning: quotient_group.map_id -> QuotientGroup.map_id is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (h : optParam.{0} (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N)) (Eq.le.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1))) (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N) N (Subgroup.comap_id.{u1} G _inst_1 N))), Eq.{succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 N nN (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) (MonoidHom.id.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (h : optParam.{0} (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N)) (Eq.le.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1)))) (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N) N (Subgroup.comap_id.{u1} G _inst_1 N))), Eq.{succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 N nN (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) (MonoidHom.id.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))))
-Case conversion may be inaccurate. Consider using '#align quotient_group.map_id QuotientGroup.map_idₓ'. -/
 @[simp, to_additive]
 theorem map_id (h : N ≤ Subgroup.comap (MonoidHom.id _) N := (Subgroup.comap_id N).le) :
     map N N (MonoidHom.id _) h = MonoidHom.id _ :=
@@ -383,9 +284,6 @@ theorem map_id (h : N ≤ Subgroup.comap (MonoidHom.id _) N := (Subgroup.comap_i
 #align quotient_group.map_id QuotientGroup.map_id
 #align quotient_add_group.map_id QuotientAddGroup.map_id
 
-/- warning: quotient_group.map_map -> QuotientGroup.map_map is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.map_map QuotientGroup.map_mapₓ'. -/
 @[simp, to_additive]
 theorem map_map {I : Type _} [Group I] (M : Subgroup H) (O : Subgroup I) [M.Normal] [O.Normal]
     (f : G →* H) (g : H →* I) (hf : N ≤ Subgroup.comap f M) (hg : M ≤ Subgroup.comap g O)
@@ -398,9 +296,6 @@ theorem map_map {I : Type _} [Group I] (M : Subgroup H) (O : Subgroup I) [M.Norm
 #align quotient_group.map_map QuotientGroup.map_map
 #align quotient_add_group.map_map QuotientAddGroup.map_map
 
-/- warning: quotient_group.map_comp_map -> QuotientGroup.map_comp_map is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.map_comp_map QuotientGroup.map_comp_mapₓ'. -/
 @[simp, to_additive]
 theorem map_comp_map {I : Type _} [Group I] (M : Subgroup H) (O : Subgroup I) [M.Normal] [O.Normal]
     (f : G →* H) (g : H →* I) (hf : N ≤ Subgroup.comap f M) (hg : M ≤ Subgroup.comap g O)
@@ -417,9 +312,6 @@ section congr
 
 variable (G' : Subgroup G) (H' : Subgroup H) [Subgroup.Normal G'] [Subgroup.Normal H']
 
-/- warning: quotient_group.congr -> QuotientGroup.congr is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.congr QuotientGroup.congrₓ'. -/
 /-- `quotient_group.congr` lifts the isomorphism `e : G ≃ H` to `G ⧸ G' ≃ H ⧸ H'`,
 given that `e` maps `G` to `H`. -/
 @[to_additive
@@ -444,42 +336,27 @@ def congr (e : G ≃* H) (he : G'.map ↑e = H') : G ⧸ G' ≃* H ⧸ H' :=
 #align quotient_group.congr QuotientGroup.congr
 #align quotient_add_group.congr QuotientAddGroup.congr
 
-/- warning: quotient_group.congr_mk -> QuotientGroup.congr_mk is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.congr_mk QuotientGroup.congr_mkₓ'. -/
 @[simp]
 theorem congr_mk (e : G ≃* H) (he : G'.map ↑e = H') (x) : congr G' H' e he (mk x) = e x :=
   rfl
 #align quotient_group.congr_mk QuotientGroup.congr_mk
 
-/- warning: quotient_group.congr_mk' -> QuotientGroup.congr_mk' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.congr_mk' QuotientGroup.congr_mk'ₓ'. -/
 theorem congr_mk' (e : G ≃* H) (he : G'.map ↑e = H') (x) :
     congr G' H' e he (mk' G' x) = mk' H' (e x) :=
   rfl
 #align quotient_group.congr_mk' QuotientGroup.congr_mk'
 
-/- warning: quotient_group.congr_apply -> QuotientGroup.congr_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.congr_apply QuotientGroup.congr_applyₓ'. -/
 @[simp]
 theorem congr_apply (e : G ≃* H) (he : G'.map ↑e = H') (x : G) :
     congr G' H' e he x = mk' H' (e x) :=
   rfl
 #align quotient_group.congr_apply QuotientGroup.congr_apply
 
-/- warning: quotient_group.congr_refl -> QuotientGroup.congr_refl is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.congr_refl QuotientGroup.congr_reflₓ'. -/
 @[simp]
 theorem congr_refl (he : G'.map (MulEquiv.refl G : G →* G) = G' := Subgroup.map_id G') :
     congr G' G' (MulEquiv.refl G) he = MulEquiv.refl (G ⧸ G') := by ext ⟨x⟩; rfl
 #align quotient_group.congr_refl QuotientGroup.congr_refl
 
-/- warning: quotient_group.congr_symm -> QuotientGroup.congr_symm is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.congr_symm QuotientGroup.congr_symmₓ'. -/
 @[simp]
 theorem congr_symm (e : G ≃* H) (he : G'.map ↑e = H') :
     (congr G' H' e he).symm = congr H' G' e.symm ((Subgroup.map_symm_eq_iff_map_eq _).mpr he) :=
@@ -501,27 +378,18 @@ def kerLift : G ⧸ ker φ →* H :=
 #align quotient_add_group.ker_lift QuotientAddGroup.kerLift
 -/
 
-/- warning: quotient_group.ker_lift_mk -> QuotientGroup.kerLift_mk is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.ker_lift_mk QuotientGroup.kerLift_mkₓ'. -/
 @[simp, to_additive]
 theorem kerLift_mk (g : G) : (kerLift φ) g = φ g :=
   lift_mk _ _ _
 #align quotient_group.ker_lift_mk QuotientGroup.kerLift_mk
 #align quotient_add_group.ker_lift_mk QuotientAddGroup.kerLift_mk
 
-/- warning: quotient_group.ker_lift_mk' -> QuotientGroup.kerLift_mk' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.ker_lift_mk' QuotientGroup.kerLift_mk'ₓ'. -/
 @[simp, to_additive]
 theorem kerLift_mk' (g : G) : (kerLift φ) (mk g) = φ g :=
   lift_mk' _ _ _
 #align quotient_group.ker_lift_mk' QuotientGroup.kerLift_mk'
 #align quotient_add_group.ker_lift_mk' QuotientAddGroup.kerLift_mk'
 
-/- warning: quotient_group.ker_lift_injective -> QuotientGroup.kerLift_injective is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.ker_lift_injective QuotientGroup.kerLift_injectiveₓ'. -/
 @[to_additive]
 theorem kerLift_injective : Injective (kerLift φ) := fun a b =>
   Quotient.inductionOn₂' a b fun a b (h : φ a = φ b) =>
@@ -529,12 +397,6 @@ theorem kerLift_injective : Injective (kerLift φ) := fun a b =>
 #align quotient_group.ker_lift_injective QuotientGroup.kerLift_injective
 #align quotient_add_group.ker_lift_injective QuotientAddGroup.kerLift_injective
 
-/- warning: quotient_group.range_ker_lift -> QuotientGroup.rangeKerLift is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.rangeKerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))))) (Monoid.toMulOneClass.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (DivInvMonoid.toMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Group.toDivInvMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Subgroup.toGroup.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))
-Case conversion may be inaccurate. Consider using '#align quotient_group.range_ker_lift QuotientGroup.rangeKerLiftₓ'. -/
 -- Note that `ker φ` isn't definitionally `ker (φ.range_restrict)`
 -- so there is a bit of annoying code duplication here
 /-- The induced map from the quotient by the kernel to the range. -/
@@ -544,9 +406,6 @@ def rangeKerLift : G ⧸ ker φ →* φ.range :=
 #align quotient_group.range_ker_lift QuotientGroup.rangeKerLift
 #align quotient_add_group.range_ker_lift QuotientAddGroup.rangeKerLift
 
-/- warning: quotient_group.range_ker_lift_injective -> QuotientGroup.rangeKerLift_injective is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.range_ker_lift_injective QuotientGroup.rangeKerLift_injectiveₓ'. -/
 @[to_additive]
 theorem rangeKerLift_injective : Injective (rangeKerLift φ) := fun a b =>
   Quotient.inductionOn₂' a b fun a b (h : φ.range_restrict a = φ.range_restrict b) =>
@@ -556,9 +415,6 @@ theorem rangeKerLift_injective : Injective (rangeKerLift φ) := fun a b =>
 #align quotient_group.range_ker_lift_injective QuotientGroup.rangeKerLift_injective
 #align quotient_add_group.range_ker_lift_injective QuotientAddGroup.rangeKerLift_injective
 
-/- warning: quotient_group.range_ker_lift_surjective -> QuotientGroup.rangeKerLift_surjective is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.range_ker_lift_surjective QuotientGroup.rangeKerLift_surjectiveₓ'. -/
 @[to_additive]
 theorem rangeKerLift_surjective : Surjective (rangeKerLift φ) :=
   by
@@ -568,12 +424,6 @@ theorem rangeKerLift_surjective : Surjective (rangeKerLift φ) :=
 #align quotient_group.range_ker_lift_surjective QuotientGroup.rangeKerLift_surjective
 #align quotient_add_group.range_ker_lift_surjective QuotientAddGroup.rangeKerLift_surjective
 
-/- warning: quotient_group.quotient_ker_equiv_range -> QuotientGroup.quotientKerEquivRange is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.quotientKerEquivRange._proof_1.{u1, u2} G _inst_1 H _inst_2 φ)))))) (Subgroup.mul.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (Subgroup.mul.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))
-Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_ker_equiv_range QuotientGroup.quotientKerEquivRangeₓ'. -/
 /-- **Noether's first isomorphism theorem** (a definition): the canonical isomorphism between
 `G/(ker φ)` to `range φ`. -/
 @[to_additive
@@ -583,12 +433,6 @@ noncomputable def quotientKerEquivRange : G ⧸ ker φ ≃* range φ :=
 #align quotient_group.quotient_ker_equiv_range QuotientGroup.quotientKerEquivRange
 #align quotient_add_group.quotient_ker_equiv_range QuotientAddGroup.quotientKerEquivRange
 
-/- warning: quotient_group.quotient_ker_equiv_of_right_inverse -> QuotientGroup.quotientKerEquivOfRightInverse is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (ψ : H -> G), (Function.RightInverse.{succ u1, succ u2} G H ψ (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ)) -> (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.quotientKerEquivOfRightInverse._proof_1.{u1, u2} G _inst_1 H _inst_2 φ)))))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (ψ : H -> G), (Function.RightInverse.{succ u1, succ u2} G H ψ (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ)) -> (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))
-Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_ker_equiv_of_right_inverse QuotientGroup.quotientKerEquivOfRightInverseₓ'. -/
 /-- The canonical isomorphism `G/(ker φ) ≃* H` induced by a homomorphism `φ : G →* H`
 with a right inverse `ψ : H → G`. -/
 @[to_additive
@@ -603,12 +447,6 @@ def quotientKerEquivOfRightInverse (ψ : H → G) (hφ : RightInverse ψ φ) : G
 #align quotient_group.quotient_ker_equiv_of_right_inverse QuotientGroup.quotientKerEquivOfRightInverse
 #align quotient_add_group.quotient_ker_equiv_of_right_inverse QuotientAddGroup.quotientKerEquivOfRightInverse
 
-/- warning: quotient_group.quotient_bot -> QuotientGroup.quotientBot is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G], MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (Bot.bot.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.hasBot.{u1} G _inst_1))) G (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (Bot.bot.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.hasBot.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (Bot.bot.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.hasBot.{u1} G _inst_1))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (Bot.bot.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.hasBot.{u1} G _inst_1))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (Bot.bot.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.hasBot.{u1} G _inst_1))) (QuotientGroup.Quotient.group.{u1} G _inst_1 (Bot.bot.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.hasBot.{u1} G _inst_1)) (QuotientGroup.quotientBot._proof_1.{u1} G _inst_1)))))) (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G], MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (Bot.bot.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instBotSubgroup.{u1} G _inst_1))) G (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (Bot.bot.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instBotSubgroup.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (Bot.bot.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instBotSubgroup.{u1} G _inst_1))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (Bot.bot.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instBotSubgroup.{u1} G _inst_1))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (Bot.bot.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instBotSubgroup.{u1} G _inst_1))) (QuotientGroup.Quotient.group.{u1} G _inst_1 (Bot.bot.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instBotSubgroup.{u1} G _inst_1)) (Subgroup.normal_of_characteristic.{u1} G _inst_1 (Bot.bot.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instBotSubgroup.{u1} G _inst_1)) (Subgroup.botCharacteristic.{u1} G _inst_1))))))) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))
-Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_bot QuotientGroup.quotientBotₓ'. -/
 /-- The canonical isomorphism `G/⊥ ≃* G`. -/
 @[to_additive "The canonical isomorphism `G/⊥ ≃+ G`.", simps]
 def quotientBot : G ⧸ (⊥ : Subgroup G) ≃* G :=
@@ -616,12 +454,6 @@ def quotientBot : G ⧸ (⊥ : Subgroup G) ≃* G :=
 #align quotient_group.quotient_bot QuotientGroup.quotientBot
 #align quotient_add_group.quotient_bot QuotientAddGroup.quotientBot
 
-/- warning: quotient_group.quotient_ker_equiv_of_surjective -> QuotientGroup.quotientKerEquivOfSurjective is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), (Function.Surjective.{succ u1, succ u2} G H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ)) -> (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.quotientKerEquivOfRightInverse._proof_1.{u1, u2} G _inst_1 H _inst_2 φ)))))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), (Function.Surjective.{succ u1, succ u2} G H (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ)) -> (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))
-Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_ker_equiv_of_surjective QuotientGroup.quotientKerEquivOfSurjectiveₓ'. -/
 /-- The canonical isomorphism `G/(ker φ) ≃* H` induced by a surjection `φ : G →* H`.
 
 For a `computable` version, see `quotient_group.quotient_ker_equiv_of_right_inverse`.
@@ -633,12 +465,6 @@ noncomputable def quotientKerEquivOfSurjective (hφ : Surjective φ) : G ⧸ ker
 #align quotient_group.quotient_ker_equiv_of_surjective QuotientGroup.quotientKerEquivOfSurjective
 #align quotient_add_group.quotient_ker_equiv_of_surjective QuotientAddGroup.quotientKerEquivOfSurjective
 
-/- warning: quotient_group.quotient_mul_equiv_of_eq -> QuotientGroup.quotientMulEquivOfEq is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {M : Subgroup.{u1} G _inst_1} {N : Subgroup.{u1} G _inst_1} [_inst_3 : Subgroup.Normal.{u1} G _inst_1 M] [_inst_4 : Subgroup.Normal.{u1} G _inst_1 N], (Eq.{succ u1} (Subgroup.{u1} G _inst_1) M N) -> (MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M _inst_3))))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N _inst_4))))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {M : Subgroup.{u1} G _inst_1} {N : Subgroup.{u1} G _inst_1} [_inst_3 : Subgroup.Normal.{u1} G _inst_1 M] [_inst_4 : Subgroup.Normal.{u1} G _inst_1 N], (Eq.{succ u1} (Subgroup.{u1} G _inst_1) M N) -> (MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M _inst_3))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N _inst_4))))))
-Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_mul_equiv_of_eq QuotientGroup.quotientMulEquivOfEqₓ'. -/
 /-- If two normal subgroups `M` and `N` of `G` are the same, their quotient groups are
 isomorphic. -/
 @[to_additive
@@ -649,9 +475,6 @@ def quotientMulEquivOfEq {M N : Subgroup G} [M.Normal] [N.Normal] (h : M = N) :
 #align quotient_group.quotient_mul_equiv_of_eq QuotientGroup.quotientMulEquivOfEq
 #align quotient_add_group.quotient_add_equiv_of_eq QuotientAddGroup.quotientAddEquivOfEq
 
-/- warning: quotient_group.quotient_mul_equiv_of_eq_mk -> QuotientGroup.quotientMulEquivOfEq_mk is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_mul_equiv_of_eq_mk QuotientGroup.quotientMulEquivOfEq_mkₓ'. -/
 @[simp, to_additive]
 theorem quotientMulEquivOfEq_mk {M N : Subgroup G} [M.Normal] [N.Normal] (h : M = N) (x : G) :
     QuotientGroup.quotientMulEquivOfEq h (QuotientGroup.mk x) = QuotientGroup.mk x :=
@@ -659,9 +482,6 @@ theorem quotientMulEquivOfEq_mk {M N : Subgroup G} [M.Normal] [N.Normal] (h : M
 #align quotient_group.quotient_mul_equiv_of_eq_mk QuotientGroup.quotientMulEquivOfEq_mk
 #align quotient_add_group.quotient_add_equiv_of_eq_mk QuotientAddGroup.quotientAddEquivOfEq_mk
 
-/- warning: quotient_group.quotient_map_subgroup_of_of_le -> QuotientGroup.quotientMapSubgroupOfOfLe is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_map_subgroup_of_of_le QuotientGroup.quotientMapSubgroupOfOfLeₓ'. -/
 /-- Let `A', A, B', B` be subgroups of `G`. If `A' ≤ B'` and `A ≤ B`,
 then there is a map `A / (A' ⊓ A) →* B / (B' ⊓ B)` induced by the inclusions. -/
 @[to_additive
@@ -673,9 +493,6 @@ def quotientMapSubgroupOfOfLe {A' A B' B : Subgroup G} [hAN : (A'.subgroupOf A).
 #align quotient_group.quotient_map_subgroup_of_of_le QuotientGroup.quotientMapSubgroupOfOfLe
 #align quotient_add_group.quotient_map_add_subgroup_of_of_le QuotientAddGroup.quotientMapAddSubgroupOfOfLe
 
-/- warning: quotient_group.quotient_map_subgroup_of_of_le_coe -> QuotientGroup.quotientMapSubgroupOfOfLe_mk is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_map_subgroup_of_of_le_coe QuotientGroup.quotientMapSubgroupOfOfLe_mkₓ'. -/
 @[simp, to_additive]
 theorem quotientMapSubgroupOfOfLe_mk {A' A B' B : Subgroup G} [hAN : (A'.subgroupOf A).Normal]
     [hBN : (B'.subgroupOf B).Normal] (h' : A' ≤ B') (h : A ≤ B) (x : A) :
@@ -684,9 +501,6 @@ theorem quotientMapSubgroupOfOfLe_mk {A' A B' B : Subgroup G} [hAN : (A'.subgrou
 #align quotient_group.quotient_map_subgroup_of_of_le_coe QuotientGroup.quotientMapSubgroupOfOfLe_mk
 #align quotient_add_group.quotient_map_add_subgroup_of_of_le_coe QuotientAddGroup.quotientMapAddSubgroupOfOfLe_mk
 
-/- warning: quotient_group.equiv_quotient_subgroup_of_of_eq -> QuotientGroup.equivQuotientSubgroupOfOfEq is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.equiv_quotient_subgroup_of_of_eq QuotientGroup.equivQuotientSubgroupOfOfEqₓ'. -/
 /-- Let `A', A, B', B` be subgroups of `G`.
 If `A' = B'` and `A = B`, then the quotients `A / (A' ⊓ A)` and `B / (B' ⊓ B)` are isomorphic.
 
@@ -739,9 +553,6 @@ theorem homQuotientZPowOfHom_comp :
 #align quotient_add_group.hom_quotient_zsmul_of_hom_comp QuotientAddGroup.homQuotientZSMulOfHom_comp
 -/
 
-/- warning: quotient_group.hom_quotient_zpow_of_hom_comp_of_right_inverse -> QuotientGroup.homQuotientZPowOfHom_comp_of_rightInverse is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.hom_quotient_zpow_of_hom_comp_of_right_inverse QuotientGroup.homQuotientZPowOfHom_comp_of_rightInverseₓ'. -/
 @[simp, to_additive]
 theorem homQuotientZPowOfHom_comp_of_rightInverse (i : Function.RightInverse g f) :
     (homQuotientZPowOfHom f n).comp (homQuotientZPowOfHom g n) = MonoidHom.id _ :=
@@ -749,12 +560,6 @@ theorem homQuotientZPowOfHom_comp_of_rightInverse (i : Function.RightInverse g f
 #align quotient_group.hom_quotient_zpow_of_hom_comp_of_right_inverse QuotientGroup.homQuotientZPowOfHom_comp_of_rightInverse
 #align quotient_add_group.hom_quotient_zsmul_of_hom_comp_of_right_inverse QuotientAddGroup.homQuotientZSMulOfHom_comp_of_rightInverse
 
-/- warning: quotient_group.equiv_quotient_zpow_of_equiv -> QuotientGroup.equivQuotientZPowOfEquiv is a dubious translation:
-lean 3 declaration is
-  forall {A : Type.{u1}} {B : Type.{u1}} [_inst_3 : CommGroup.{u1} A] [_inst_4 : CommGroup.{u1} B], (MulEquiv.{u1, u1} A B (MulOneClass.toHasMul.{u1} A (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (MulOneClass.toHasMul.{u1} B (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))))) -> (forall (n : Int), MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (QuotientGroup.Quotient.group.{u1} A (CommGroup.toGroup.{u1} A _inst_3) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)) (QuotientGroup.equivQuotientZPowOfEquiv._proof_1.{u1} A _inst_3 n)))))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (QuotientGroup.homQuotientZPowOfHom._proof_1.{u1} B _inst_4 n)))))))
-but is expected to have type
-  forall {A : Type.{u1}} {B : Type.{u1}} [_inst_3 : CommGroup.{u1} A] [_inst_4 : CommGroup.{u1} B], (MulEquiv.{u1, u1} A B (MulOneClass.toMul.{u1} A (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (MulOneClass.toMul.{u1} B (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))))) -> (forall (n : Int), MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (QuotientGroup.Quotient.group.{u1} A (CommGroup.toGroup.{u1} A _inst_3) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)) (Subgroup.normal_of_comm.{u1} A _inst_3 (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)))))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)))))))))
-Case conversion may be inaccurate. Consider using '#align quotient_group.equiv_quotient_zpow_of_equiv QuotientGroup.equivQuotientZPowOfEquivₓ'. -/
 /-- The equivalence of quotients by powers of an integer induced by a group isomorphism. -/
 @[to_additive
       "The equivalence of quotients by multiples of an integer induced by an additive group\nisomorphism."]
@@ -765,9 +570,6 @@ def equivQuotientZPowOfEquiv :
 #align quotient_group.equiv_quotient_zpow_of_equiv QuotientGroup.equivQuotientZPowOfEquiv
 #align quotient_add_group.equiv_quotient_zsmul_of_equiv QuotientAddGroup.equivQuotientZSMulOfEquiv
 
-/- warning: quotient_group.equiv_quotient_zpow_of_equiv_refl -> QuotientGroup.equivQuotientZPowOfEquiv_refl is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.equiv_quotient_zpow_of_equiv_refl QuotientGroup.equivQuotientZPowOfEquiv_reflₓ'. -/
 @[simp, to_additive]
 theorem equivQuotientZPowOfEquiv_refl :
     MulEquiv.refl (A ⧸ (zpowGroupHom n : A →* A).range) =
@@ -776,9 +578,6 @@ theorem equivQuotientZPowOfEquiv_refl :
 #align quotient_group.equiv_quotient_zpow_of_equiv_refl QuotientGroup.equivQuotientZPowOfEquiv_refl
 #align quotient_add_group.equiv_quotient_zsmul_of_equiv_refl QuotientAddGroup.equivQuotientZSMulOfEquiv_refl
 
-/- warning: quotient_group.equiv_quotient_zpow_of_equiv_symm -> QuotientGroup.equivQuotientZPowOfEquiv_symm is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.equiv_quotient_zpow_of_equiv_symm QuotientGroup.equivQuotientZPowOfEquiv_symmₓ'. -/
 @[simp, to_additive]
 theorem equivQuotientZPowOfEquiv_symm :
     (equivQuotientZPowOfEquiv e n).symm = equivQuotientZPowOfEquiv e.symm n :=
@@ -786,9 +585,6 @@ theorem equivQuotientZPowOfEquiv_symm :
 #align quotient_group.equiv_quotient_zpow_of_equiv_symm QuotientGroup.equivQuotientZPowOfEquiv_symm
 #align quotient_add_group.equiv_quotient_zsmul_of_equiv_symm QuotientAddGroup.equivQuotientZSMulOfEquiv_symm
 
-/- warning: quotient_group.equiv_quotient_zpow_of_equiv_trans -> QuotientGroup.equivQuotientZPowOfEquiv_trans is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.equiv_quotient_zpow_of_equiv_trans QuotientGroup.equivQuotientZPowOfEquiv_transₓ'. -/
 @[simp, to_additive]
 theorem equivQuotientZPowOfEquiv_trans :
     (equivQuotientZPowOfEquiv e n).trans (equivQuotientZPowOfEquiv d n) =
@@ -803,9 +599,6 @@ section SndIsomorphismThm
 
 open _Root_.Subgroup
 
-/- warning: quotient_group.quotient_inf_equiv_prod_normal_quotient -> QuotientGroup.quotientInfEquivProdNormalQuotient is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_inf_equiv_prod_normal_quotient QuotientGroup.quotientInfEquivProdNormalQuotientₓ'. -/
 /-- **Noether's second isomorphism theorem**: given two subgroups `H` and `N` of a group `G`, where
 `N` is normal, defines an isomorphism between `H/(H ∩ N)` and `(HN)/N`. -/
 @[to_additive
@@ -848,12 +641,6 @@ instance map_normal : (M.map (QuotientGroup.mk' N)).Normal :=
 
 variable (h : N ≤ M)
 
-/- warning: quotient_group.quotient_quotient_equiv_quotient_aux -> QuotientGroup.quotientQuotientEquivQuotientAux is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M], (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N M) -> (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M], (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N M) -> (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))))
-Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_quotient_equiv_quotient_aux QuotientGroup.quotientQuotientEquivQuotientAuxₓ'. -/
 /-- The map from the third isomorphism theorem for groups: `(G / N) / (M / N) → G / M`. -/
 @[to_additive
       "The map from the third isomorphism theorem for additive groups:\n`(A / N) / (M / N) → A / M`."]
@@ -865,9 +652,6 @@ def quotientQuotientEquivQuotientAux : (G ⧸ N) ⧸ M.map (mk' N) →* G ⧸ M
 #align quotient_group.quotient_quotient_equiv_quotient_aux QuotientGroup.quotientQuotientEquivQuotientAux
 #align quotient_add_group.quotient_quotient_equiv_quotient_aux QuotientAddGroup.quotientQuotientEquivQuotientAux
 
-/- warning: quotient_group.quotient_quotient_equiv_quotient_aux_coe -> QuotientGroup.quotientQuotientEquivQuotientAux_mk is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_quotient_equiv_quotient_aux_coe QuotientGroup.quotientQuotientEquivQuotientAux_mkₓ'. -/
 @[simp, to_additive]
 theorem quotientQuotientEquivQuotientAux_mk (x : G ⧸ N) :
     quotientQuotientEquivQuotientAux N M h x = QuotientGroup.map N M (MonoidHom.id G) h x :=
@@ -875,9 +659,6 @@ theorem quotientQuotientEquivQuotientAux_mk (x : G ⧸ N) :
 #align quotient_group.quotient_quotient_equiv_quotient_aux_coe QuotientGroup.quotientQuotientEquivQuotientAux_mk
 #align quotient_add_group.quotient_quotient_equiv_quotient_aux_coe QuotientAddGroup.quotientQuotientEquivQuotientAux_mk
 
-/- warning: quotient_group.quotient_quotient_equiv_quotient_aux_coe_coe -> QuotientGroup.quotientQuotientEquivQuotientAux_mk_mk is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_quotient_equiv_quotient_aux_coe_coe QuotientGroup.quotientQuotientEquivQuotientAux_mk_mkₓ'. -/
 @[to_additive]
 theorem quotientQuotientEquivQuotientAux_mk_mk (x : G) :
     quotientQuotientEquivQuotientAux N M h (x : G ⧸ N) = x :=
@@ -885,12 +666,6 @@ theorem quotientQuotientEquivQuotientAux_mk_mk (x : G) :
 #align quotient_group.quotient_quotient_equiv_quotient_aux_coe_coe QuotientGroup.quotientQuotientEquivQuotientAux_mk_mk
 #align quotient_add_group.quotient_quotient_equiv_quotient_aux_coe_coe QuotientAddGroup.quotientQuotientEquivQuotientAux_mk_mk
 
-/- warning: quotient_group.quotient_quotient_equiv_quotient -> QuotientGroup.quotientQuotientEquivQuotient is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M], (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N M) -> (MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM)))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M], (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N M) -> (MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM)))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))
-Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_quotient_equiv_quotient QuotientGroup.quotientQuotientEquivQuotientₓ'. -/
 /-- **Noether's third isomorphism theorem** for groups: `(G / N) / (M / N) ≃* G / M`. -/
 @[to_additive
       "**Noether's third isomorphism theorem** for additive groups:\n`(A / N) / (M / N) ≃+ A / M`."]
@@ -905,12 +680,6 @@ end ThirdIsoThm
 
 section trivial
 
-/- warning: quotient_group.subsingleton_quotient_top -> QuotientGroup.subsingleton_quotient_top is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G], Subsingleton.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (Top.top.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.hasTop.{u1} G _inst_1)))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G], Subsingleton.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (Top.top.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instTopSubgroup.{u1} G _inst_1)))
-Case conversion may be inaccurate. Consider using '#align quotient_group.subsingleton_quotient_top QuotientGroup.subsingleton_quotient_topₓ'. -/
 @[to_additive]
 theorem subsingleton_quotient_top : Subsingleton (G ⧸ (⊤ : Subgroup G)) :=
   by
@@ -920,12 +689,6 @@ theorem subsingleton_quotient_top : Subsingleton (G ⧸ (⊤ : Subgroup G)) :=
 #align quotient_group.subsingleton_quotient_top QuotientGroup.subsingleton_quotient_top
 #align quotient_add_group.subsingleton_quotient_top QuotientAddGroup.subsingleton_quotient_top
 
-/- warning: quotient_group.subgroup_eq_top_of_subsingleton -> QuotientGroup.subgroup_eq_top_of_subsingleton is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (H : Subgroup.{u1} G _inst_1), (Subsingleton.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) H)) -> (Eq.{succ u1} (Subgroup.{u1} G _inst_1) H (Top.top.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.hasTop.{u1} G _inst_1)))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (H : Subgroup.{u1} G _inst_1), (Subsingleton.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) H)) -> (Eq.{succ u1} (Subgroup.{u1} G _inst_1) H (Top.top.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instTopSubgroup.{u1} G _inst_1)))
-Case conversion may be inaccurate. Consider using '#align quotient_group.subgroup_eq_top_of_subsingleton QuotientGroup.subgroup_eq_top_of_subsingletonₓ'. -/
 /-- If the quotient by a subgroup gives a singleton then the subgroup is the whole group. -/
 @[to_additive
       "If the quotient by an additive subgroup gives a singleton then the additive subgroup\nis the whole additive group."]
@@ -964,12 +727,6 @@ variable {F G H : Type u} [Group F] [Group G] [Group H] [Fintype F] [Fintype H]
 
 variable (f : F →* G) (g : G →* H)
 
-/- warning: group.fintype_of_ker_le_range -> Group.fintypeOfKerLeRange is a dubious translation:
-lean 3 declaration is
-  forall {F : Type.{u1}} {G : Type.{u1}} {H : Type.{u1}} [_inst_1 : Group.{u1} F] [_inst_2 : Group.{u1} G] [_inst_3 : Group.{u1} H] [_inst_4 : Fintype.{u1} F] [_inst_5 : Fintype.{u1} H] (f : MonoidHom.{u1, u1} F G (Monoid.toMulOneClass.{u1} F (DivInvMonoid.toMonoid.{u1} F (Group.toDivInvMonoid.{u1} F _inst_1))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (g : MonoidHom.{u1, u1} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u1} H (DivInvMonoid.toMonoid.{u1} H (Group.toDivInvMonoid.{u1} H _inst_3)))), (LE.le.{u1} (Subgroup.{u1} G _inst_2) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_2) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_2) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) (MonoidHom.ker.{u1, u1} G _inst_2 H (Monoid.toMulOneClass.{u1} H (DivInvMonoid.toMonoid.{u1} H (Group.toDivInvMonoid.{u1} H _inst_3))) g) (MonoidHom.range.{u1, u1} F _inst_1 G _inst_2 f)) -> (Fintype.{u1} G)
-but is expected to have type
-  forall {F : Type.{u1}} {G : Type.{u1}} {H : Type.{u1}} [_inst_1 : Group.{u1} F] [_inst_2 : Group.{u1} G] [_inst_3 : Group.{u1} H] [_inst_4 : Fintype.{u1} F] [_inst_5 : Fintype.{u1} H] (f : MonoidHom.{u1, u1} F G (Monoid.toMulOneClass.{u1} F (DivInvMonoid.toMonoid.{u1} F (Group.toDivInvMonoid.{u1} F _inst_1))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (g : MonoidHom.{u1, u1} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u1} H (DivInvMonoid.toMonoid.{u1} H (Group.toDivInvMonoid.{u1} H _inst_3)))), (LE.le.{u1} (Subgroup.{u1} G _inst_2) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_2) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_2) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_2))))) (MonoidHom.ker.{u1, u1} G _inst_2 H (Monoid.toMulOneClass.{u1} H (DivInvMonoid.toMonoid.{u1} H (Group.toDivInvMonoid.{u1} H _inst_3))) g) (MonoidHom.range.{u1, u1} F _inst_1 G _inst_2 f)) -> (Fintype.{u1} G)
-Case conversion may be inaccurate. Consider using '#align group.fintype_of_ker_le_range Group.fintypeOfKerLeRangeₓ'. -/
 /-- If `F` and `H` are finite such that `ker(G →* H) ≤ im(F →* G)`, then `G` is finite. -/
 @[to_additive "If `F` and `H` are finite such that `ker(G →+ H) ≤ im(F →+ G)`, then `G` is finite."]
 noncomputable def fintypeOfKerLeRange (h : g.ker ≤ f.range) : Fintype G :=
@@ -989,12 +746,6 @@ noncomputable def fintypeOfKerEqRange (h : g.ker = f.range) : Fintype G :=
 #align add_group.fintype_of_ker_eq_range AddGroup.fintypeOfKerEqRange
 -/
 
-/- warning: group.fintype_of_ker_of_codom -> Group.fintypeOfKerOfCodom is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} {H : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_3 : Group.{u1} H] [_inst_5 : Fintype.{u1} H] (g : MonoidHom.{u1, u1} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u1} H (DivInvMonoid.toMonoid.{u1} H (Group.toDivInvMonoid.{u1} H _inst_3)))) [_inst_6 : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) (MonoidHom.ker.{u1, u1} G _inst_2 H (Monoid.toMulOneClass.{u1} H (DivInvMonoid.toMonoid.{u1} H (Group.toDivInvMonoid.{u1} H _inst_3))) g))], Fintype.{u1} G
-but is expected to have type
-  forall {G : Type.{u1}} {H : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_3 : Group.{u1} H] [_inst_5 : Fintype.{u1} H] (g : MonoidHom.{u1, u1} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u1} H (DivInvMonoid.toMonoid.{u1} H (Group.toDivInvMonoid.{u1} H _inst_3)))) [_inst_6 : Fintype.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x (MonoidHom.ker.{u1, u1} G _inst_2 H (Monoid.toMulOneClass.{u1} H (DivInvMonoid.toMonoid.{u1} H (Group.toDivInvMonoid.{u1} H _inst_3))) g)))], Fintype.{u1} G
-Case conversion may be inaccurate. Consider using '#align group.fintype_of_ker_of_codom Group.fintypeOfKerOfCodomₓ'. -/
 /-- If `ker(G →* H)` and `H` are finite, then `G` is finite. -/
 @[to_additive "If `ker(G →+ H)` and `H` are finite, then `G` is finite."]
 noncomputable def fintypeOfKerOfCodom [Fintype g.ker] : Fintype G :=
Diff
@@ -474,10 +474,7 @@ theorem congr_apply (e : G ≃* H) (he : G'.map ↑e = H') (x : G) :
 Case conversion may be inaccurate. Consider using '#align quotient_group.congr_refl QuotientGroup.congr_reflₓ'. -/
 @[simp]
 theorem congr_refl (he : G'.map (MulEquiv.refl G : G →* G) = G' := Subgroup.map_id G') :
-    congr G' G' (MulEquiv.refl G) he = MulEquiv.refl (G ⧸ G') :=
-  by
-  ext ⟨x⟩
-  rfl
+    congr G' G' (MulEquiv.refl G) he = MulEquiv.refl (G ⧸ G') := by ext ⟨x⟩; rfl
 #align quotient_group.congr_refl QuotientGroup.congr_refl
 
 /- warning: quotient_group.congr_symm -> QuotientGroup.congr_symm is a dubious translation:
@@ -702,12 +699,7 @@ def equivQuotientSubgroupOfOfEq {A' A B' B : Subgroup G} [hAN : (A'.subgroupOf A
     [hBN : (B'.subgroupOf B).Normal] (h' : A' = B') (h : A = B) :
     A ⧸ A'.subgroupOf A ≃* B ⧸ B'.subgroupOf B :=
   MonoidHom.toMulEquiv (quotientMapSubgroupOfOfLe h'.le h.le) (quotientMapSubgroupOfOfLe h'.ge h.ge)
-    (by
-      ext ⟨x, hx⟩
-      rfl)
-    (by
-      ext ⟨x, hx⟩
-      rfl)
+    (by ext ⟨x, hx⟩; rfl) (by ext ⟨x, hx⟩; rfl)
 #align quotient_group.equiv_quotient_subgroup_of_of_eq QuotientGroup.equivQuotientSubgroupOfOfEq
 #align quotient_add_group.equiv_quotient_add_subgroup_of_of_eq QuotientAddGroup.equivQuotientAddSubgroupOfOfEq
 
@@ -780,10 +772,7 @@ Case conversion may be inaccurate. Consider using '#align quotient_group.equiv_q
 theorem equivQuotientZPowOfEquiv_refl :
     MulEquiv.refl (A ⧸ (zpowGroupHom n : A →* A).range) =
       equivQuotientZPowOfEquiv (MulEquiv.refl A) n :=
-  by
-  ext x
-  rw [← Quotient.out_eq' x]
-  rfl
+  by ext x; rw [← Quotient.out_eq' x]; rfl
 #align quotient_group.equiv_quotient_zpow_of_equiv_refl QuotientGroup.equivQuotientZPowOfEquiv_refl
 #align quotient_add_group.equiv_quotient_zsmul_of_equiv_refl QuotientAddGroup.equivQuotientZSMulOfEquiv_refl
 
@@ -804,10 +793,7 @@ Case conversion may be inaccurate. Consider using '#align quotient_group.equiv_q
 theorem equivQuotientZPowOfEquiv_trans :
     (equivQuotientZPowOfEquiv e n).trans (equivQuotientZPowOfEquiv d n) =
       equivQuotientZPowOfEquiv (e.trans d) n :=
-  by
-  ext x
-  rw [← Quotient.out_eq' x]
-  rfl
+  by ext x; rw [← Quotient.out_eq' x]; rfl
 #align quotient_group.equiv_quotient_zpow_of_equiv_trans QuotientGroup.equivQuotientZPowOfEquiv_trans
 #align quotient_add_group.equiv_quotient_zsmul_of_equiv_trans QuotientAddGroup.equivQuotientZSMulOfEquiv_trans
 
@@ -874,8 +860,7 @@ Case conversion may be inaccurate. Consider using '#align quotient_group.quotien
 def quotientQuotientEquivQuotientAux : (G ⧸ N) ⧸ M.map (mk' N) →* G ⧸ M :=
   lift (M.map (mk' N)) (map N M (MonoidHom.id G) h)
     (by
-      rintro _ ⟨x, hx, rfl⟩
-      rw [map_mk' N M _ _ x]
+      rintro _ ⟨x, hx, rfl⟩; rw [map_mk' N M _ _ x]
       exact (QuotientGroup.eq_one_iff _).mpr hx)
 #align quotient_group.quotient_quotient_equiv_quotient_aux QuotientGroup.quotientQuotientEquivQuotientAux
 #align quotient_add_group.quotient_quotient_equiv_quotient_aux QuotientAddGroup.quotientQuotientEquivQuotientAux
@@ -911,13 +896,8 @@ Case conversion may be inaccurate. Consider using '#align quotient_group.quotien
       "**Noether's third isomorphism theorem** for additive groups:\n`(A / N) / (M / N) ≃+ A / M`."]
 def quotientQuotientEquivQuotient : (G ⧸ N) ⧸ M.map (QuotientGroup.mk' N) ≃* G ⧸ M :=
   MonoidHom.toMulEquiv (quotientQuotientEquivQuotientAux N M h)
-    (QuotientGroup.map _ _ (QuotientGroup.mk' N) (Subgroup.le_comap_map _ _))
-    (by
-      ext
-      simp)
-    (by
-      ext
-      simp)
+    (QuotientGroup.map _ _ (QuotientGroup.mk' N) (Subgroup.le_comap_map _ _)) (by ext; simp)
+    (by ext; simp)
 #align quotient_group.quotient_quotient_equiv_quotient QuotientGroup.quotientQuotientEquivQuotient
 #align quotient_add_group.quotient_quotient_equiv_quotient QuotientAddGroup.quotientQuotientEquivQuotient
 
Diff
@@ -132,10 +132,7 @@ theorem mk'_surjective : Surjective <| mk' N :=
 #align quotient_add_group.mk'_surjective QuotientAddGroup.mk'_surjective
 
 /- warning: quotient_group.mk'_eq_mk' -> QuotientGroup.mk'_eq_mk' is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {x : G} {y : G}, Iff (Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) y)) (Exists.{succ u1} G (fun (z : G) => Exists.{0} (Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) z N) (fun (H : Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) z N) => Eq.{succ u1} G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) x z) y)))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {x : G} {y : G}, Iff (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) y)) (Exists.{succ u1} G (fun (z : G) => And (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) z N) (Eq.{succ u1} G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) x z) y)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.mk'_eq_mk' QuotientGroup.mk'_eq_mk'ₓ'. -/
 @[to_additive]
 theorem mk'_eq_mk' {x y : G} : mk' N x = mk' N y ↔ ∃ z ∈ N, x * z = y :=
@@ -297,10 +294,7 @@ def lift (φ : G →* H) (HN : ∀ x ∈ N, φ x = 1) : Q →* H :=
 #align quotient_add_group.lift QuotientAddGroup.lift
 
 /- warning: quotient_group.lift_mk -> QuotientGroup.lift_mk is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) x N) -> (Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ x) (OfNat.ofNat.{u2} H 1 (OfNat.mk.{u2} H 1 (One.one.{u2} H (MulOneClass.toHasOne.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))))))) (g : G), Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> H) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) g)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ g)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (Group.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) _inst_2)))))))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) (QuotientGroup.mk.{u1} G _inst_1 N g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (QuotientGroup.mk.{u1} G _inst_1 N g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.lift_mk QuotientGroup.lift_mkₓ'. -/
 @[simp, to_additive]
 theorem lift_mk {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N φ HN (g : Q ) = φ g :=
@@ -309,10 +303,7 @@ theorem lift_mk {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N φ
 #align quotient_add_group.lift_mk QuotientAddGroup.lift_mk
 
 /- warning: quotient_group.lift_mk' -> QuotientGroup.lift_mk' is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) x N) -> (Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ x) (OfNat.ofNat.{u2} H 1 (OfNat.mk.{u2} H 1 (One.one.{u2} H (MulOneClass.toHasOne.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))))))) (g : G), Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> H) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (QuotientGroup.mk.{u1} G _inst_1 N g)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ g)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (Group.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) _inst_2)))))))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) (QuotientGroup.mk.{u1} G _inst_1 N g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (QuotientGroup.mk.{u1} G _inst_1 N g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.lift_mk' QuotientGroup.lift_mk'ₓ'. -/
 @[simp, to_additive]
 theorem lift_mk' {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N φ HN (mk g : Q ) = φ g :=
@@ -321,10 +312,7 @@ theorem lift_mk' {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N 
 #align quotient_add_group.lift_mk' QuotientAddGroup.lift_mk'
 
 /- warning: quotient_group.lift_quot_mk -> QuotientGroup.lift_quot_mk is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) x N) -> (Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ x) (OfNat.ofNat.{u2} H 1 (OfNat.mk.{u2} H 1 (One.one.{u2} H (MulOneClass.toHasOne.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))))))) (g : G), Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> H) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (Quot.mk.{succ u1} G (Setoid.r.{succ u1} G (QuotientGroup.leftRel.{u1} G _inst_1 N)) g)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ g)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (Group.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) _inst_2)))))))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) (Quot.mk.{succ u1} G (Setoid.r.{succ u1} G (QuotientGroup.leftRel.{u1} G _inst_1 N)) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (Quot.mk.{succ u1} G (Setoid.r.{succ u1} G (QuotientGroup.leftRel.{u1} G _inst_1 N)) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.lift_quot_mk QuotientGroup.lift_quot_mkₓ'. -/
 @[simp, to_additive]
 theorem lift_quot_mk {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) :
@@ -353,10 +341,7 @@ def map (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f) : G ⧸
 #align quotient_add_group.map QuotientAddGroup.map
 
 /- warning: quotient_group.map_coe -> QuotientGroup.map_mk is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (x : G), Eq.{succ u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M)) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_3 f h) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) x)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasLiftT.mk.{succ u2, succ u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (CoeTCₓ.coe.{succ u2, succ u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u2} H _inst_2 M))) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) f x))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.mk.{u1} G _inst_1 N x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3)))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_3 f h) (QuotientGroup.mk.{u1} G _inst_1 N x)) (QuotientGroup.mk.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) _inst_2 M (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) f x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.map_coe QuotientGroup.map_mkₓ'. -/
 @[simp, to_additive]
 theorem map_mk (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f) (x : G) :
@@ -366,10 +351,7 @@ theorem map_mk (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f)
 #align quotient_add_group.map_coe QuotientAddGroup.map_mk
 
 /- warning: quotient_group.map_mk' -> QuotientGroup.map_mk' is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (x : G), Eq.{succ u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M)) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_3 f h) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasLiftT.mk.{succ u2, succ u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (CoeTCₓ.coe.{succ u2, succ u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u2} H _inst_2 M))) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) f x))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (a : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) a) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3)))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_3 f h) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x)) (QuotientGroup.mk.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) _inst_2 M (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) f x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.map_mk' QuotientGroup.map_mk'ₓ'. -/
 @[to_additive]
 theorem map_mk' (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f) (x : G) :
@@ -379,10 +361,7 @@ theorem map_mk' (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f)
 #align quotient_add_group.map_mk' QuotientAddGroup.map_mk'
 
 /- warning: quotient_group.map_id_apply -> QuotientGroup.map_id_apply is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (h : optParam.{0} (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N)) (Eq.le.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1))) (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N) N (Subgroup.comap_id.{u1} G _inst_1 N))) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 N nN (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) x) x
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (h : optParam.{0} (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N)) (Eq.le.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1)))) (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N) N (Subgroup.comap_id.{u1} G _inst_1 N))) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 N nN (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) x) x
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.map_id_apply QuotientGroup.map_id_applyₓ'. -/
 @[to_additive]
 theorem map_id_apply (h : N ≤ Subgroup.comap (MonoidHom.id _) N := (Subgroup.comap_id N).le) (x) :
@@ -405,10 +384,7 @@ theorem map_id (h : N ≤ Subgroup.comap (MonoidHom.id _) N := (Subgroup.comap_i
 #align quotient_add_group.map_id QuotientAddGroup.map_id
 
 /- warning: quotient_group.map_map -> QuotientGroup.map_map is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {I : Type.{u3}} [_inst_3 : Group.{u3} I] (M : Subgroup.{u2} H _inst_2) (O : Subgroup.{u3} I _inst_3) [_inst_4 : Subgroup.Normal.{u2} H _inst_2 M] [_inst_5 : Subgroup.Normal.{u3} I _inst_3 O] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : MonoidHom.{u2, u3} H I (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3)))) (hf : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (hg : LE.le.{u2} (Subgroup.{u2} H _inst_2) (Preorder.toHasLe.{u2} (Subgroup.{u2} H _inst_2) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} H _inst_2) (SetLike.partialOrder.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)))) M (Subgroup.comap.{u2, u3} H _inst_2 I _inst_3 g O)) (hgf : optParam.{0} (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u3} G _inst_1 I _inst_3 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) O)) (LE.le.trans.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u1, u3} G _inst_1 I _inst_3 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) O) hf (LE.le.trans_eq.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1))) (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f (Subgroup.comap.{u2, u3} H _inst_2 I _inst_3 g O)) (Subgroup.comap.{u1, u3} G _inst_1 I _inst_3 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) O) (Subgroup.comap_mono.{u1, u2} G _inst_1 H _inst_2 f M (Subgroup.comap.{u2, u3} H _inst_2 I _inst_3 g O) hg) (Subgroup.comap_comap.{u1, u2, u3} G _inst_1 H _inst_2 I _inst_3 O g f)))) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N), Eq.{succ u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) (fun (_x : MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) => (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) -> (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O)) (MonoidHom.hasCoeToFun.{u2, u3} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) (QuotientGroup.map.{u2, u3} H _inst_2 M _inst_4 I _inst_3 O _inst_5 g hg) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4))))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M)) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_4 f hf) x)) (coeFn.{max (succ u3) (succ u1), max (succ u1) (succ u3)} (MonoidHom.{u1, u3} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) (fun (_x : MonoidHom.{u1, u3} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O)) (MonoidHom.hasCoeToFun.{u1, u3} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) (QuotientGroup.map.{u1, u3} G _inst_1 N nN I _inst_3 O _inst_5 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) hgf) x)
-but is expected to have type
-  forall {G : Type.{u2}} [_inst_1 : Group.{u2} G] (N : Subgroup.{u2} G _inst_1) [nN : Subgroup.Normal.{u2} G _inst_1 N] {H : Type.{u3}} [_inst_2 : Group.{u3} H] {I : Type.{u1}} [_inst_3 : Group.{u1} I] (M : Subgroup.{u3} H _inst_2) (O : Subgroup.{u1} I _inst_3) [_inst_4 : Subgroup.Normal.{u3} H _inst_2 M] [_inst_5 : Subgroup.Normal.{u1} I _inst_3 O] (f : MonoidHom.{u2, u3} G H (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2)))) (g : MonoidHom.{u3, u1} H I (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3)))) (hf : LE.le.{u2} (Subgroup.{u2} G _inst_1) (Preorder.toLE.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1))))) N (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M)) (hg : LE.le.{u3} (Subgroup.{u3} H _inst_2) (Preorder.toLE.{u3} (Subgroup.{u3} H _inst_2) (PartialOrder.toPreorder.{u3} (Subgroup.{u3} H _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (Subgroup.{u3} H _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Subgroup.{u3} H _inst_2) (Subgroup.instCompleteLatticeSubgroup.{u3} H _inst_2))))) M (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O)) (hgf : optParam.{0} (LE.le.{u2} (Subgroup.{u2} G _inst_1) (Preorder.toLE.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1))))) N (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O)) (LE.le.trans.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1)))) N (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O) hf (LE.le.trans_eq.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1)))) (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O)) (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O) (Subgroup.comap_mono.{u3, u2} G _inst_1 H _inst_2 f M (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O) hg) (Subgroup.comap_comap.{u2, u3, u1} G _inst_1 H _inst_2 I _inst_3 O g f)))) (x : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) => HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (fun (a : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) a) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN))))) (MulOneClass.toMul.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (MonoidHom.monoidHomClass.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))))) (QuotientGroup.map.{u2, u3} G _inst_1 N nN H _inst_2 M _inst_4 f hf) x)) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (fun (_x : HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) => HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (MulOneClass.toMul.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5)))) (MonoidHom.monoidHomClass.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))))) (QuotientGroup.map.{u3, u1} H _inst_2 M _inst_4 I _inst_3 O _inst_5 g hg) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN))))) (MulOneClass.toMul.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (MonoidHom.monoidHomClass.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))))) (QuotientGroup.map.{u2, u3} G _inst_1 N nN H _inst_2 M _inst_4 f hf) x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5)))) (MonoidHom.monoidHomClass.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))))) (QuotientGroup.map.{u2, u1} G _inst_1 N nN I _inst_3 O _inst_5 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) hgf) x)
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.map_map QuotientGroup.map_mapₓ'. -/
 @[simp, to_additive]
 theorem map_map {I : Type _} [Group I] (M : Subgroup H) (O : Subgroup I) [M.Normal] [O.Normal]
@@ -423,10 +399,7 @@ theorem map_map {I : Type _} [Group I] (M : Subgroup H) (O : Subgroup I) [M.Norm
 #align quotient_add_group.map_map QuotientAddGroup.map_map
 
 /- warning: quotient_group.map_comp_map -> QuotientGroup.map_comp_map is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {I : Type.{u3}} [_inst_3 : Group.{u3} I] (M : Subgroup.{u2} H _inst_2) (O : Subgroup.{u3} I _inst_3) [_inst_4 : Subgroup.Normal.{u2} H _inst_2 M] [_inst_5 : Subgroup.Normal.{u3} I _inst_3 O] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : MonoidHom.{u2, u3} H I (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3)))) (hf : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (hg : LE.le.{u2} (Subgroup.{u2} H _inst_2) (Preorder.toHasLe.{u2} (Subgroup.{u2} H _inst_2) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} H _inst_2) (SetLike.partialOrder.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)))) M (Subgroup.comap.{u2, u3} H _inst_2 I _inst_3 g O)) (hgf : optParam.{0} (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u3} G _inst_1 I _inst_3 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) O)) (LE.le.trans.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u1, u3} G _inst_1 I _inst_3 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) O) hf (LE.le.trans_eq.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1))) (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f (Subgroup.comap.{u2, u3} H _inst_2 I _inst_3 g O)) (Subgroup.comap.{u1, u3} G _inst_1 I _inst_3 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) O) (Subgroup.comap_mono.{u1, u2} G _inst_1 H _inst_2 f M (Subgroup.comap.{u2, u3} H _inst_2 I _inst_3 g O) hg) (Subgroup.comap_comap.{u1, u2, u3} G _inst_1 H _inst_2 I _inst_3 O g f)))), Eq.{max (succ u3) (succ u1)} (MonoidHom.{u1, u3} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) (MonoidHom.comp.{u1, u2, u3} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5)))) (QuotientGroup.map.{u2, u3} H _inst_2 M _inst_4 I _inst_3 O _inst_5 g hg) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_4 f hf)) (QuotientGroup.map.{u1, u3} G _inst_1 N nN I _inst_3 O _inst_5 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) hgf)
-but is expected to have type
-  forall {G : Type.{u2}} [_inst_1 : Group.{u2} G] (N : Subgroup.{u2} G _inst_1) [nN : Subgroup.Normal.{u2} G _inst_1 N] {H : Type.{u3}} [_inst_2 : Group.{u3} H] {I : Type.{u1}} [_inst_3 : Group.{u1} I] (M : Subgroup.{u3} H _inst_2) (O : Subgroup.{u1} I _inst_3) [_inst_4 : Subgroup.Normal.{u3} H _inst_2 M] [_inst_5 : Subgroup.Normal.{u1} I _inst_3 O] (f : MonoidHom.{u2, u3} G H (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2)))) (g : MonoidHom.{u3, u1} H I (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3)))) (hf : LE.le.{u2} (Subgroup.{u2} G _inst_1) (Preorder.toLE.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1))))) N (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M)) (hg : LE.le.{u3} (Subgroup.{u3} H _inst_2) (Preorder.toLE.{u3} (Subgroup.{u3} H _inst_2) (PartialOrder.toPreorder.{u3} (Subgroup.{u3} H _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (Subgroup.{u3} H _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Subgroup.{u3} H _inst_2) (Subgroup.instCompleteLatticeSubgroup.{u3} H _inst_2))))) M (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O)) (hgf : optParam.{0} (LE.le.{u2} (Subgroup.{u2} G _inst_1) (Preorder.toLE.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1))))) N (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O)) (LE.le.trans.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1)))) N (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O) hf (LE.le.trans_eq.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1)))) (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O)) (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O) (Subgroup.comap_mono.{u3, u2} G _inst_1 H _inst_2 f M (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O) hg) (Subgroup.comap_comap.{u2, u3, u1} G _inst_1 H _inst_2 I _inst_3 O g f)))), Eq.{max (succ u2) (succ u1)} (MonoidHom.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (MonoidHom.comp.{u2, u3, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5)))) (QuotientGroup.map.{u3, u1} H _inst_2 M _inst_4 I _inst_3 O _inst_5 g hg) (QuotientGroup.map.{u2, u3} G _inst_1 N nN H _inst_2 M _inst_4 f hf)) (QuotientGroup.map.{u2, u1} G _inst_1 N nN I _inst_3 O _inst_5 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) hgf)
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.map_comp_map QuotientGroup.map_comp_mapₓ'. -/
 @[simp, to_additive]
 theorem map_comp_map {I : Type _} [Group I] (M : Subgroup H) (O : Subgroup I) [M.Normal] [O.Normal]
@@ -445,10 +418,7 @@ section congr
 variable (G' : Subgroup G) (H' : Subgroup H) [Subgroup.Normal G'] [Subgroup.Normal H']
 
 /- warning: quotient_group.congr -> QuotientGroup.congr is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (G' : Subgroup.{u1} G _inst_1) (H' : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] [_inst_4 : Subgroup.Normal.{u2} H _inst_2 H'] (e : MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))), (Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.monoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.mulEquivClass.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))))))) e) G') H') -> (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (G' : Subgroup.{u1} G _inst_1) (H' : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] [_inst_4 : Subgroup.Normal.{u2} H _inst_2 H'] (e : MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))), (Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 (MonoidHomClass.toMonoidHom.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.instMonoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) e) G') H') -> (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.congr QuotientGroup.congrₓ'. -/
 /-- `quotient_group.congr` lifts the isomorphism `e : G ≃ H` to `G ⧸ G' ≃ H ⧸ H'`,
 given that `e` maps `G` to `H`. -/
@@ -475,10 +445,7 @@ def congr (e : G ≃* H) (he : G'.map ↑e = H') : G ⧸ G' ≃* H ⧸ H' :=
 #align quotient_add_group.congr QuotientAddGroup.congr
 
 /- warning: quotient_group.congr_mk -> QuotientGroup.congr_mk is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (G' : Subgroup.{u1} G _inst_1) (H' : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] [_inst_4 : Subgroup.Normal.{u2} H _inst_2 H'] (e : MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (he : Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.monoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.mulEquivClass.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))))))) e) G') H') (x : G), Eq.{succ u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (fun (_x : MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H')) (MulEquiv.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (QuotientGroup.congr.{u1, u2} G _inst_1 H _inst_2 G' H' _inst_3 _inst_4 e he) (QuotientGroup.mk.{u1} G _inst_1 G' x)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (HasLiftT.mk.{succ u2, succ u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (CoeTCₓ.coe.{succ u2, succ u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u2} H _inst_2 H'))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (fun (_x : MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) => G -> H) (MulEquiv.hasCoeToFun.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) e x))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (G' : Subgroup.{u1} G _inst_1) (H' : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] [_inst_4 : Subgroup.Normal.{u2} H _inst_2 H'] (e : MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (he : Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 (MonoidHomClass.toMonoidHom.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.instMonoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) e) G') H') (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.mk.{u1} G _inst_1 G' x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))))) (QuotientGroup.congr.{u1, u2} G _inst_1 H _inst_2 G' H' _inst_3 _inst_4 e he) (QuotientGroup.mk.{u1} G _inst_1 G' x)) (QuotientGroup.mk.{u2} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => H) x) _inst_2 H' (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => H) _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))))) e x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.congr_mk QuotientGroup.congr_mkₓ'. -/
 @[simp]
 theorem congr_mk (e : G ≃* H) (he : G'.map ↑e = H') (x) : congr G' H' e he (mk x) = e x :=
@@ -486,10 +453,7 @@ theorem congr_mk (e : G ≃* H) (he : G'.map ↑e = H') (x) : congr G' H' e he (
 #align quotient_group.congr_mk QuotientGroup.congr_mk
 
 /- warning: quotient_group.congr_mk' -> QuotientGroup.congr_mk' is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (G' : Subgroup.{u1} G _inst_1) (H' : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] [_inst_4 : Subgroup.Normal.{u2} H _inst_2 H'] (e : MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (he : Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.monoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.mulEquivClass.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))))))) e) G') H') (x : G), Eq.{succ u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (fun (_x : MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H')) (MulEquiv.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (QuotientGroup.congr.{u1, u2} G _inst_1 H _inst_2 G' H' _inst_3 _inst_4 e he) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G')) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (QuotientGroup.mk'.{u1} G _inst_1 G' _inst_3) x)) (coeFn.{succ u2, succ u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (fun (_x : MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) => H -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H')) (MonoidHom.hasCoeToFun.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (QuotientGroup.mk'.{u2} H _inst_2 H' _inst_4) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (fun (_x : MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) => G -> H) (MulEquiv.hasCoeToFun.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) e x))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (G' : Subgroup.{u1} G _inst_1) (H' : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] [_inst_4 : Subgroup.Normal.{u2} H _inst_2 H'] (e : MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (he : Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 (MonoidHomClass.toMonoidHom.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.instMonoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) e) G') H') (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (fun (a : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') a) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))))) (QuotientGroup.mk'.{u1} G _inst_1 G' _inst_3) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))))) (QuotientGroup.congr.{u1, u2} G _inst_1 H _inst_2 G' H' _inst_3 _inst_4 e he) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))))) (QuotientGroup.mk'.{u1} G _inst_1 G' _inst_3) x)) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : H) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))) (MonoidHom.monoidHomClass.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))) (QuotientGroup.mk'.{u2} H _inst_2 H' _inst_4) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => H) _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))))) e x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.congr_mk' QuotientGroup.congr_mk'ₓ'. -/
 theorem congr_mk' (e : G ≃* H) (he : G'.map ↑e = H') (x) :
     congr G' H' e he (mk' G' x) = mk' H' (e x) :=
@@ -497,10 +461,7 @@ theorem congr_mk' (e : G ≃* H) (he : G'.map ↑e = H') (x) :
 #align quotient_group.congr_mk' QuotientGroup.congr_mk'
 
 /- warning: quotient_group.congr_apply -> QuotientGroup.congr_apply is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (G' : Subgroup.{u1} G _inst_1) (H' : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] [_inst_4 : Subgroup.Normal.{u2} H _inst_2 H'] (e : MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (he : Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.monoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.mulEquivClass.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))))))) e) G') H') (x : G), Eq.{succ u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (fun (_x : MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H')) (MulEquiv.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (QuotientGroup.congr.{u1, u2} G _inst_1 H _inst_2 G' H' _inst_3 _inst_4 e he) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 G'))) x)) (coeFn.{succ u2, succ u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (fun (_x : MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) => H -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H')) (MonoidHom.hasCoeToFun.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (QuotientGroup.mk'.{u2} H _inst_2 H' _inst_4) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (fun (_x : MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) => G -> H) (MulEquiv.hasCoeToFun.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) e x))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (G' : Subgroup.{u1} G _inst_1) (H' : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] [_inst_4 : Subgroup.Normal.{u2} H _inst_2 H'] (e : MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (he : Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 (MonoidHomClass.toMonoidHom.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.instMonoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) e) G') H') (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.mk.{u1} G _inst_1 G' x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))))) (QuotientGroup.congr.{u1, u2} G _inst_1 H _inst_2 G' H' _inst_3 _inst_4 e he) (QuotientGroup.mk.{u1} G _inst_1 G' x)) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : H) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))) (MonoidHom.monoidHomClass.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))) (QuotientGroup.mk'.{u2} H _inst_2 H' _inst_4) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => H) _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))))) e x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.congr_apply QuotientGroup.congr_applyₓ'. -/
 @[simp]
 theorem congr_apply (e : G ≃* H) (he : G'.map ↑e = H') (x : G) :
@@ -509,10 +470,7 @@ theorem congr_apply (e : G ≃* H) (he : G'.map ↑e = H') (x : G) :
 #align quotient_group.congr_apply QuotientGroup.congr_apply
 
 /- warning: quotient_group.congr_refl -> QuotientGroup.congr_refl is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (G' : Subgroup.{u1} G _inst_1) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] (he : optParam.{0} (Eq.{succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.map.{u1, u1} G _inst_1 G _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (MulEquiv.{u1, u1} G G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) (MonoidHom.{u1, u1} G G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (HasLiftT.mk.{succ u1, succ u1} (MulEquiv.{u1, u1} G G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) (MonoidHom.{u1, u1} G G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (CoeTCₓ.coe.{succ u1, succ u1} (MulEquiv.{u1, u1} G G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) (MonoidHom.{u1, u1} G G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MonoidHom.hasCoeT.{u1, u1, u1} G G (MulEquiv.{u1, u1} G G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (MulEquivClass.monoidHomClass.{u1, u1, u1} (MulEquiv.{u1, u1} G G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) G G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (MulEquiv.mulEquivClass.{u1, u1} G G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))))))) (MulEquiv.refl.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))) G') G') (Subgroup.map_id.{u1} G _inst_1 G')), Eq.{succ u1} (MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3)))))) (QuotientGroup.congr.{u1, u1} G _inst_1 G _inst_1 G' G' _inst_3 _inst_3 (MulEquiv.refl.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) he) (MulEquiv.refl.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (G' : Subgroup.{u1} G _inst_1) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] (he : optParam.{0} (Eq.{succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.map.{u1, u1} G _inst_1 G _inst_1 (MonoidHomClass.toMonoidHom.{u1, u1, u1} G G (MulEquiv.{u1, u1} G G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (MulEquivClass.instMonoidHomClass.{u1, u1, u1} (MulEquiv.{u1, u1} G G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) G G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u1} G G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))) (MulEquiv.refl.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))) G') G') (Subgroup.map_id.{u1} G _inst_1 G')), Eq.{succ u1} (MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3)))))) (QuotientGroup.congr.{u1, u1} G _inst_1 G _inst_1 G' G' _inst_3 _inst_3 (MulEquiv.refl.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) he) (MulEquiv.refl.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.congr_refl QuotientGroup.congr_reflₓ'. -/
 @[simp]
 theorem congr_refl (he : G'.map (MulEquiv.refl G : G →* G) = G' := Subgroup.map_id G') :
@@ -523,10 +481,7 @@ theorem congr_refl (he : G'.map (MulEquiv.refl G : G →* G) = G' := Subgroup.ma
 #align quotient_group.congr_refl QuotientGroup.congr_refl
 
 /- warning: quotient_group.congr_symm -> QuotientGroup.congr_symm is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (G' : Subgroup.{u1} G _inst_1) (H' : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] [_inst_4 : Subgroup.Normal.{u2} H _inst_2 H'] (e : MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (he : Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.monoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.mulEquivClass.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))))))) e) G') H'), Eq.{max (succ u2) (succ u1)} (MulEquiv.{u2, u1} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3)))))) (MulEquiv.symm.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (QuotientGroup.congr.{u1, u2} G _inst_1 H _inst_2 G' H' _inst_3 _inst_4 e he)) (QuotientGroup.congr.{u2, u1} H _inst_2 G _inst_1 H' G' _inst_4 _inst_3 (MulEquiv.symm.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) e) (Iff.mpr (Eq.{succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.map.{u2, u1} H _inst_2 G _inst_1 ((fun (a : Sort.{max (succ u2) (succ u1)}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{max (succ u2) (succ u1), max (succ u1) (succ u2)} a b] => self.0) (MulEquiv.{u2, u1} H G (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) (MonoidHom.{u2, u1} H G (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (HasLiftT.mk.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MulEquiv.{u2, u1} H G (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) (MonoidHom.{u2, u1} H G (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (CoeTCₓ.coe.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MulEquiv.{u2, u1} H G (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) (MonoidHom.{u2, u1} H G (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MonoidHom.hasCoeT.{u2, u1, max u2 u1} H G (MulEquiv.{u2, u1} H G (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (MulEquivClass.monoidHomClass.{max u2 u1, u2, u1} (MulEquiv.{u2, u1} H G (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) H G (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (MulEquiv.mulEquivClass.{u2, u1} H G (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))))))) (MulEquiv.symm.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) e)) H') G') (Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.monoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.mulEquivClass.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))))))) e) G') H') (Subgroup.map_symm_eq_iff_map_eq.{u1, u2} G _inst_1 G' H _inst_2 H' e) he))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (G' : Subgroup.{u1} G _inst_1) (H' : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] [_inst_4 : Subgroup.Normal.{u2} H _inst_2 H'] (e : MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (he : Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 (MonoidHomClass.toMonoidHom.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.instMonoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) e) G') H'), Eq.{max (succ u1) (succ u2)} (MulEquiv.{u2, u1} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3)))))) (MulEquiv.symm.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (QuotientGroup.congr.{u1, u2} G _inst_1 H _inst_2 G' H' _inst_3 _inst_4 e he)) (QuotientGroup.congr.{u2, u1} H _inst_2 G _inst_1 H' G' _inst_4 _inst_3 (MulEquiv.symm.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) e) (Iff.mpr (Eq.{succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.map.{u2, u1} H _inst_2 G _inst_1 (MonoidHomClass.toMonoidHom.{u2, u1, max u1 u2} H G (MulEquiv.{u2, u1} H G (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (MulEquivClass.instMonoidHomClass.{max u1 u2, u2, u1} (MulEquiv.{u2, u1} H G (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) H G (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (MulEquiv.instMulEquivClassMulEquiv.{u2, u1} H G (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))) (MulEquiv.symm.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) e)) H') G') (Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 (MonoidHomClass.toMonoidHom.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.instMonoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) e) G') H') (Subgroup.map_symm_eq_iff_map_eq.{u1, u2} G _inst_1 G' H _inst_2 H' e) he))
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.congr_symm QuotientGroup.congr_symmₓ'. -/
 @[simp]
 theorem congr_symm (e : G ≃* H) (he : G'.map ↑e = H') :
@@ -550,10 +505,7 @@ def kerLift : G ⧸ ker φ →* H :=
 -/
 
 /- warning: quotient_group.ker_lift_mk -> QuotientGroup.kerLift_mk is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : G), Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) -> H) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))) g)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ g)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.ker_lift_mk QuotientGroup.kerLift_mkₓ'. -/
 @[simp, to_additive]
 theorem kerLift_mk (g : G) : (kerLift φ) g = φ g :=
@@ -562,10 +514,7 @@ theorem kerLift_mk (g : G) : (kerLift φ) g = φ g :=
 #align quotient_add_group.ker_lift_mk QuotientAddGroup.kerLift_mk
 
 /- warning: quotient_group.ker_lift_mk' -> QuotientGroup.kerLift_mk' is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : G), Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) -> H) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ g)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.ker_lift_mk' QuotientGroup.kerLift_mk'ₓ'. -/
 @[simp, to_additive]
 theorem kerLift_mk' (g : G) : (kerLift φ) (mk g) = φ g :=
@@ -574,10 +523,7 @@ theorem kerLift_mk' (g : G) : (kerLift φ) (mk g) = φ g :=
 #align quotient_add_group.ker_lift_mk' QuotientAddGroup.kerLift_mk'
 
 /- warning: quotient_group.ker_lift_injective -> QuotientGroup.kerLift_injective is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Injective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) -> H) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Injective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ))
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.ker_lift_injective QuotientGroup.kerLift_injectiveₓ'. -/
 @[to_additive]
 theorem kerLift_injective : Injective (kerLift φ) := fun a b =>
@@ -602,10 +548,7 @@ def rangeKerLift : G ⧸ ker φ →* φ.range :=
 #align quotient_add_group.range_ker_lift QuotientAddGroup.rangeKerLift
 
 /- warning: quotient_group.range_ker_lift_injective -> QuotientGroup.rangeKerLift_injective is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Injective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.rangeKerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))))) (Monoid.toMulOneClass.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (DivInvMonoid.toMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Group.toDivInvMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Subgroup.toGroup.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.rangeKerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))))) (Monoid.toMulOneClass.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (DivInvMonoid.toMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Group.toDivInvMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Subgroup.toGroup.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) -> (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.rangeKerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))))) (Monoid.toMulOneClass.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (DivInvMonoid.toMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Group.toDivInvMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Subgroup.toGroup.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (QuotientGroup.rangeKerLift.{u1, u2} G _inst_1 H _inst_2 φ))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Injective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (QuotientGroup.rangeKerLift.{u1, u2} G _inst_1 H _inst_2 φ))
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.range_ker_lift_injective QuotientGroup.rangeKerLift_injectiveₓ'. -/
 @[to_additive]
 theorem rangeKerLift_injective : Injective (rangeKerLift φ) := fun a b =>
@@ -617,10 +560,7 @@ theorem rangeKerLift_injective : Injective (rangeKerLift φ) := fun a b =>
 #align quotient_add_group.range_ker_lift_injective QuotientAddGroup.rangeKerLift_injective
 
 /- warning: quotient_group.range_ker_lift_surjective -> QuotientGroup.rangeKerLift_surjective is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Surjective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.rangeKerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))))) (Monoid.toMulOneClass.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (DivInvMonoid.toMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Group.toDivInvMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Subgroup.toGroup.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.rangeKerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))))) (Monoid.toMulOneClass.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (DivInvMonoid.toMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Group.toDivInvMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Subgroup.toGroup.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) -> (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.rangeKerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))))) (Monoid.toMulOneClass.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (DivInvMonoid.toMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Group.toDivInvMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Subgroup.toGroup.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (QuotientGroup.rangeKerLift.{u1, u2} G _inst_1 H _inst_2 φ))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Surjective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (QuotientGroup.rangeKerLift.{u1, u2} G _inst_1 H _inst_2 φ))
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.range_ker_lift_surjective QuotientGroup.rangeKerLift_surjectiveₓ'. -/
 @[to_additive]
 theorem rangeKerLift_surjective : Surjective (rangeKerLift φ) :=
@@ -713,10 +653,7 @@ def quotientMulEquivOfEq {M N : Subgroup G} [M.Normal] [N.Normal] (h : M = N) :
 #align quotient_add_group.quotient_add_equiv_of_eq QuotientAddGroup.quotientAddEquivOfEq
 
 /- warning: quotient_group.quotient_mul_equiv_of_eq_mk -> QuotientGroup.quotientMulEquivOfEq_mk is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {M : Subgroup.{u1} G _inst_1} {N : Subgroup.{u1} G _inst_1} [_inst_3 : Subgroup.Normal.{u1} G _inst_1 M] [_inst_4 : Subgroup.Normal.{u1} G _inst_1 N] (h : Eq.{succ u1} (Subgroup.{u1} G _inst_1) M N) (x : G), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (coeFn.{succ u1, succ u1} (MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M _inst_3))))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N _inst_4)))))) (fun (_x : MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M _inst_3))))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N _inst_4)))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MulEquiv.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M _inst_3))))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N _inst_4)))))) (QuotientGroup.quotientMulEquivOfEq.{u1} G _inst_1 M N _inst_3 _inst_4 h) (QuotientGroup.mk.{u1} G _inst_1 M x)) (QuotientGroup.mk.{u1} G _inst_1 N x)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {M : Subgroup.{u1} G _inst_1} {N : Subgroup.{u1} G _inst_1} [_inst_3 : Subgroup.Normal.{u1} G _inst_1 M] [_inst_4 : Subgroup.Normal.{u1} G _inst_1 N] (h : Eq.{succ u1} (Subgroup.{u1} G _inst_1) M N) (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.mk.{u1} G _inst_1 M x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M _inst_3))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M _inst_3))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M _inst_3))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulEquivClass.toEquivLike.{u1, u1, u1} (MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M _inst_3))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M _inst_3))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N _inst_4))))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M _inst_3))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N _inst_4))))))))) (QuotientGroup.quotientMulEquivOfEq.{u1} G _inst_1 M N _inst_3 _inst_4 h) (QuotientGroup.mk.{u1} G _inst_1 M x)) (QuotientGroup.mk.{u1} G _inst_1 N x)
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_mul_equiv_of_eq_mk QuotientGroup.quotientMulEquivOfEq_mkₓ'. -/
 @[simp, to_additive]
 theorem quotientMulEquivOfEq_mk {M N : Subgroup G} [M.Normal] [N.Normal] (h : M = N) (x : G) :
@@ -726,10 +663,7 @@ theorem quotientMulEquivOfEq_mk {M N : Subgroup G} [M.Normal] [N.Normal] (h : M
 #align quotient_add_group.quotient_add_equiv_of_eq_mk QuotientAddGroup.quotientAddEquivOfEq_mk
 
 /- warning: quotient_group.quotient_map_subgroup_of_of_le -> QuotientGroup.quotientMapSubgroupOfOfLe is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {A' : Subgroup.{u1} G _inst_1} {A : Subgroup.{u1} G _inst_1} {B' : Subgroup.{u1} G _inst_1} {B : Subgroup.{u1} G _inst_1} [hAN : Subgroup.Normal.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)] [hBN : Subgroup.Normal.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)], (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) A' B') -> (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) A B) -> (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN)))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {A' : Subgroup.{u1} G _inst_1} {A : Subgroup.{u1} G _inst_1} {B' : Subgroup.{u1} G _inst_1} {B : Subgroup.{u1} G _inst_1} [hAN : Subgroup.Normal.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)] [hBN : Subgroup.Normal.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)], (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) A' B') -> (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) A B) -> (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_map_subgroup_of_of_le QuotientGroup.quotientMapSubgroupOfOfLeₓ'. -/
 /-- Let `A', A, B', B` be subgroups of `G`. If `A' ≤ B'` and `A ≤ B`,
 then there is a map `A / (A' ⊓ A) →* B / (B' ⊓ B)` induced by the inclusions. -/
@@ -743,10 +677,7 @@ def quotientMapSubgroupOfOfLe {A' A B' B : Subgroup G} [hAN : (A'.subgroupOf A).
 #align quotient_add_group.quotient_map_add_subgroup_of_of_le QuotientAddGroup.quotientMapAddSubgroupOfOfLe
 
 /- warning: quotient_group.quotient_map_subgroup_of_of_le_coe -> QuotientGroup.quotientMapSubgroupOfOfLe_mk is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {A' : Subgroup.{u1} G _inst_1} {A : Subgroup.{u1} G _inst_1} {B' : Subgroup.{u1} G _inst_1} {B : Subgroup.{u1} G _inst_1} [hAN : Subgroup.Normal.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)] [hBN : Subgroup.Normal.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)] (h' : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) A' B') (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) A B) (x : coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) => (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) -> (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B))) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (QuotientGroup.quotientMapSubgroupOfOfLe.{u1} G _inst_1 A' A B' B hAN hBN h' h) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)))) x)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)))) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)))) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B))))) (fun (_x : MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)))) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B))))) => (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) -> (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B)) (MonoidHom.hasCoeToFun.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)))) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B))))) (Subgroup.inclusion.{u1} G _inst_1 A B h) x))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {A' : Subgroup.{u1} G _inst_1} {A : Subgroup.{u1} G _inst_1} {B' : Subgroup.{u1} G _inst_1} {B : Subgroup.{u1} G _inst_1} [hAN : Subgroup.Normal.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)] [hBN : Subgroup.Normal.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)] (h' : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) A' B') (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) A B) (x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) => HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.mk.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (fun (_x : HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) => HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))))) (QuotientGroup.quotientMapSubgroupOfOfLe.{u1} G _inst_1 A' A B' B hAN hBN h' h) (QuotientGroup.mk.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) x)) (QuotientGroup.mk.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) => Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) x) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (fun (_x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) => Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A))) (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B)) (MonoidHom.monoidHomClass.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))))) (Subgroup.inclusion.{u1} G _inst_1 A B h) x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_map_subgroup_of_of_le_coe QuotientGroup.quotientMapSubgroupOfOfLe_mkₓ'. -/
 @[simp, to_additive]
 theorem quotientMapSubgroupOfOfLe_mk {A' A B' B : Subgroup G} [hAN : (A'.subgroupOf A).Normal]
@@ -757,10 +688,7 @@ theorem quotientMapSubgroupOfOfLe_mk {A' A B' B : Subgroup G} [hAN : (A'.subgrou
 #align quotient_add_group.quotient_map_add_subgroup_of_of_le_coe QuotientAddGroup.quotientMapAddSubgroupOfOfLe_mk
 
 /- warning: quotient_group.equiv_quotient_subgroup_of_of_eq -> QuotientGroup.equivQuotientSubgroupOfOfEq is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {A' : Subgroup.{u1} G _inst_1} {A : Subgroup.{u1} G _inst_1} {B' : Subgroup.{u1} G _inst_1} {B : Subgroup.{u1} G _inst_1} [hAN : Subgroup.Normal.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)] [hBN : Subgroup.Normal.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)], (Eq.{succ u1} (Subgroup.{u1} G _inst_1) A' B') -> (Eq.{succ u1} (Subgroup.{u1} G _inst_1) A B) -> (MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN))))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {A' : Subgroup.{u1} G _inst_1} {A : Subgroup.{u1} G _inst_1} {B' : Subgroup.{u1} G _inst_1} {B : Subgroup.{u1} G _inst_1} [hAN : Subgroup.Normal.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)] [hBN : Subgroup.Normal.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)], (Eq.{succ u1} (Subgroup.{u1} G _inst_1) A' B') -> (Eq.{succ u1} (Subgroup.{u1} G _inst_1) A B) -> (MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.equiv_quotient_subgroup_of_of_eq QuotientGroup.equivQuotientSubgroupOfOfEqₓ'. -/
 /-- Let `A', A, B', B` be subgroups of `G`.
 If `A' = B'` and `A = B`, then the quotients `A / (A' ⊓ A)` and `B / (B' ⊓ B)` are isomorphic.
@@ -820,10 +748,7 @@ theorem homQuotientZPowOfHom_comp :
 -/
 
 /- warning: quotient_group.hom_quotient_zpow_of_hom_comp_of_right_inverse -> QuotientGroup.homQuotientZPowOfHom_comp_of_rightInverse is a dubious translation:
-lean 3 declaration is
-  forall {A : Type.{u1}} {B : Type.{u1}} [_inst_3 : CommGroup.{u1} A] [_inst_4 : CommGroup.{u1} B] (f : MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (g : MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (n : Int), (Function.RightInverse.{succ u1, succ u1} A B (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (fun (_x : MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) => B -> A) (MonoidHom.hasCoeToFun.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) g) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (fun (_x : MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) => A -> B) (MonoidHom.hasCoeToFun.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) f)) -> (Eq.{succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (QuotientGroup.homQuotientZPowOfHom._proof_1.{u1} B _inst_4 n))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (QuotientGroup.homQuotientZPowOfHom._proof_2.{u1} B _inst_4 n)))))) (MonoidHom.comp.{u1, u1, u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (QuotientGroup.homQuotientZPowOfHom._proof_1.{u1} B _inst_4 n))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (QuotientGroup.Quotient.group.{u1} A (CommGroup.toGroup.{u1} A _inst_3) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)) (QuotientGroup.homQuotientZPowOfHom._proof_1.{u1} A _inst_3 n))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (QuotientGroup.homQuotientZPowOfHom._proof_2.{u1} B _inst_4 n))))) (QuotientGroup.homQuotientZPowOfHom.{u1} A B _inst_3 _inst_4 f n) (QuotientGroup.homQuotientZPowOfHom.{u1} B A _inst_4 _inst_3 g n)) (MonoidHom.id.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (QuotientGroup.homQuotientZPowOfHom._proof_1.{u1} B _inst_4 n)))))))
-but is expected to have type
-  forall {A : Type.{u1}} {B : Type.{u1}} [_inst_3 : CommGroup.{u1} A] [_inst_4 : CommGroup.{u1} B] (f : MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (g : MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (n : Int), (Function.RightInverse.{succ u1, succ u1} A B (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : B) => A) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) B A (MulOneClass.toMul.{u1} B (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (MulOneClass.toMul.{u1} A (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (MonoidHom.monoidHomClass.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))))) g) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) A B (MulOneClass.toMul.{u1} A (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (MulOneClass.toMul.{u1} B (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (MonoidHom.monoidHomClass.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))))) f)) -> (Eq.{succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)))))))) (MonoidHom.comp.{u1, u1, u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (QuotientGroup.Quotient.group.{u1} A (CommGroup.toGroup.{u1} A _inst_3) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)) (Subgroup.normal_of_comm.{u1} A _inst_3 (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))))))) (QuotientGroup.homQuotientZPowOfHom.{u1} A B _inst_3 _inst_4 f n) (QuotientGroup.homQuotientZPowOfHom.{u1} B A _inst_4 _inst_3 g n)) (MonoidHom.id.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)))))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.hom_quotient_zpow_of_hom_comp_of_right_inverse QuotientGroup.homQuotientZPowOfHom_comp_of_rightInverseₓ'. -/
 @[simp, to_additive]
 theorem homQuotientZPowOfHom_comp_of_rightInverse (i : Function.RightInverse g f) :
@@ -849,10 +774,7 @@ def equivQuotientZPowOfEquiv :
 #align quotient_add_group.equiv_quotient_zsmul_of_equiv QuotientAddGroup.equivQuotientZSMulOfEquiv
 
 /- warning: quotient_group.equiv_quotient_zpow_of_equiv_refl -> QuotientGroup.equivQuotientZPowOfEquiv_refl is a dubious translation:
-lean 3 declaration is
-  forall {A : Type.{u1}} [_inst_3 : CommGroup.{u1} A] (n : Int), Eq.{succ u1} (MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (QuotientGroup.Quotient.group.{u1} A (CommGroup.toGroup.{u1} A _inst_3) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)) (QuotientGroup.equivQuotientZPowOfEquiv._proof_1.{u1} A _inst_3 n)))))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (QuotientGroup.Quotient.group.{u1} A (CommGroup.toGroup.{u1} A _inst_3) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)) (QuotientGroup.equivQuotientZPowOfEquiv._proof_1.{u1} A _inst_3 n))))))) (MulEquiv.refl.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (QuotientGroup.Quotient.group.{u1} A (CommGroup.toGroup.{u1} A _inst_3) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)) (QuotientGroup.equivQuotientZPowOfEquiv._proof_1.{u1} A _inst_3 n))))))) (QuotientGroup.equivQuotientZPowOfEquiv.{u1} A A _inst_3 _inst_3 (MulEquiv.refl.{u1} A (MulOneClass.toHasMul.{u1} A (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))))) n)
-but is expected to have type
-  forall {A : Type.{u1}} [_inst_3 : CommGroup.{u1} A] (n : Int), Eq.{succ u1} (MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (QuotientGroup.Quotient.group.{u1} A (CommGroup.toGroup.{u1} A _inst_3) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)) (Subgroup.normal_of_comm.{u1} A _inst_3 (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)))))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (QuotientGroup.Quotient.group.{u1} A (CommGroup.toGroup.{u1} A _inst_3) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)) (Subgroup.normal_of_comm.{u1} A _inst_3 (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))))))))) (MulEquiv.refl.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (QuotientGroup.Quotient.group.{u1} A (CommGroup.toGroup.{u1} A _inst_3) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)) (Subgroup.normal_of_comm.{u1} A _inst_3 (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))))))))) (QuotientGroup.equivQuotientZPowOfEquiv.{u1} A A _inst_3 _inst_3 (MulEquiv.refl.{u1} A (MulOneClass.toMul.{u1} A (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))))) n)
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.equiv_quotient_zpow_of_equiv_refl QuotientGroup.equivQuotientZPowOfEquiv_reflₓ'. -/
 @[simp, to_additive]
 theorem equivQuotientZPowOfEquiv_refl :
@@ -866,10 +788,7 @@ theorem equivQuotientZPowOfEquiv_refl :
 #align quotient_add_group.equiv_quotient_zsmul_of_equiv_refl QuotientAddGroup.equivQuotientZSMulOfEquiv_refl
 
 /- warning: quotient_group.equiv_quotient_zpow_of_equiv_symm -> QuotientGroup.equivQuotientZPowOfEquiv_symm is a dubious translation:
-lean 3 declaration is
-  forall {A : Type.{u1}} {B : Type.{u1}} [_inst_3 : CommGroup.{u1} A] [_inst_4 : CommGroup.{u1} B] (e : MulEquiv.{u1, u1} A B (MulOneClass.toHasMul.{u1} A (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (MulOneClass.toHasMul.{u1} B (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))))) (n : Int), Eq.{succ u1} (MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (QuotientGroup.homQuotientZPowOfHom._proof_1.{u1} B _inst_4 n)))))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (QuotientGroup.Quotient.group.{u1} A (CommGroup.toGroup.{u1} A _inst_3) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)) (QuotientGroup.equivQuotientZPowOfEquiv._proof_1.{u1} A _inst_3 n))))))) (MulEquiv.symm.{u1, u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (QuotientGroup.Quotient.group.{u1} A (CommGroup.toGroup.{u1} A _inst_3) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)) (QuotientGroup.equivQuotientZPowOfEquiv._proof_1.{u1} A _inst_3 n)))))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (QuotientGroup.homQuotientZPowOfHom._proof_1.{u1} B _inst_4 n)))))) (QuotientGroup.equivQuotientZPowOfEquiv.{u1} A B _inst_3 _inst_4 e n)) (QuotientGroup.equivQuotientZPowOfEquiv.{u1} B A _inst_4 _inst_3 (MulEquiv.symm.{u1, u1} A B (MulOneClass.toHasMul.{u1} A (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (MulOneClass.toHasMul.{u1} B (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) e) n)
-but is expected to have type
-  forall {A : Type.{u1}} {B : Type.{u1}} [_inst_3 : CommGroup.{u1} A] [_inst_4 : CommGroup.{u1} B] (e : MulEquiv.{u1, u1} A B (MulOneClass.toMul.{u1} A (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (MulOneClass.toMul.{u1} B (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))))) (n : Int), Eq.{succ u1} (MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)))))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (QuotientGroup.Quotient.group.{u1} A (CommGroup.toGroup.{u1} A _inst_3) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)) (Subgroup.normal_of_comm.{u1} A _inst_3 (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))))))))) (MulEquiv.symm.{u1, u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (QuotientGroup.Quotient.group.{u1} A (CommGroup.toGroup.{u1} A _inst_3) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)) (Subgroup.normal_of_comm.{u1} A _inst_3 (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)))))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)))))))) (QuotientGroup.equivQuotientZPowOfEquiv.{u1} A B _inst_3 _inst_4 e n)) (QuotientGroup.equivQuotientZPowOfEquiv.{u1} B A _inst_4 _inst_3 (MulEquiv.symm.{u1, u1} A B (MulOneClass.toMul.{u1} A (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (MulOneClass.toMul.{u1} B (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) e) n)
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.equiv_quotient_zpow_of_equiv_symm QuotientGroup.equivQuotientZPowOfEquiv_symmₓ'. -/
 @[simp, to_additive]
 theorem equivQuotientZPowOfEquiv_symm :
@@ -879,10 +798,7 @@ theorem equivQuotientZPowOfEquiv_symm :
 #align quotient_add_group.equiv_quotient_zsmul_of_equiv_symm QuotientAddGroup.equivQuotientZSMulOfEquiv_symm
 
 /- warning: quotient_group.equiv_quotient_zpow_of_equiv_trans -> QuotientGroup.equivQuotientZPowOfEquiv_trans is a dubious translation:
-lean 3 declaration is
-  forall {A : Type.{u1}} {B : Type.{u1}} {C : Type.{u1}} [_inst_3 : CommGroup.{u1} A] [_inst_4 : CommGroup.{u1} B] [_inst_5 : CommGroup.{u1} C] (e : MulEquiv.{u1, u1} A B (MulOneClass.toHasMul.{u1} A (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (MulOneClass.toHasMul.{u1} B (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))))) (d : MulEquiv.{u1, u1} B C (MulOneClass.toHasMul.{u1} B (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (MulOneClass.toHasMul.{u1} C (Monoid.toMulOneClass.{u1} C (DivInvMonoid.toMonoid.{u1} C (Group.toDivInvMonoid.{u1} C (CommGroup.toGroup.{u1} C _inst_5)))))) (n : Int), Eq.{succ u1} (MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (HasQuotient.Quotient.{u1, u1} C (Subgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (QuotientGroup.Subgroup.hasQuotient.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (MonoidHom.range.{u1, u1} C (CommGroup.toGroup.{u1} C _inst_5) C (CommGroup.toGroup.{u1} C _inst_5) (zpowGroupHom.{u1} C (CommGroup.toDivisionCommMonoid.{u1} C _inst_5) n))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (QuotientGroup.Quotient.group.{u1} A (CommGroup.toGroup.{u1} A _inst_3) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)) (QuotientGroup.equivQuotientZPowOfEquiv._proof_1.{u1} A _inst_3 n)))))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} C (Subgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (QuotientGroup.Subgroup.hasQuotient.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (MonoidHom.range.{u1, u1} C (CommGroup.toGroup.{u1} C _inst_5) C (CommGroup.toGroup.{u1} C _inst_5) (zpowGroupHom.{u1} C (CommGroup.toDivisionCommMonoid.{u1} C _inst_5) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} C (Subgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (QuotientGroup.Subgroup.hasQuotient.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (MonoidHom.range.{u1, u1} C (CommGroup.toGroup.{u1} C _inst_5) C (CommGroup.toGroup.{u1} C _inst_5) (zpowGroupHom.{u1} C (CommGroup.toDivisionCommMonoid.{u1} C _inst_5) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} C (Subgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (QuotientGroup.Subgroup.hasQuotient.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (MonoidHom.range.{u1, u1} C (CommGroup.toGroup.{u1} C _inst_5) C (CommGroup.toGroup.{u1} C _inst_5) (zpowGroupHom.{u1} C (CommGroup.toDivisionCommMonoid.{u1} C _inst_5) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} C (Subgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (QuotientGroup.Subgroup.hasQuotient.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (MonoidHom.range.{u1, u1} C (CommGroup.toGroup.{u1} C _inst_5) C (CommGroup.toGroup.{u1} C _inst_5) (zpowGroupHom.{u1} C (CommGroup.toDivisionCommMonoid.{u1} C _inst_5) n))) (QuotientGroup.Quotient.group.{u1} C (CommGroup.toGroup.{u1} C _inst_5) (MonoidHom.range.{u1, u1} C (CommGroup.toGroup.{u1} C _inst_5) C (CommGroup.toGroup.{u1} C _inst_5) (zpowGroupHom.{u1} C (CommGroup.toDivisionCommMonoid.{u1} C _inst_5) n)) (QuotientGroup.homQuotientZPowOfHom._proof_1.{u1} C _inst_5 n))))))) (MulEquiv.trans.{u1, u1, u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (HasQuotient.Quotient.{u1, u1} C (Subgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (QuotientGroup.Subgroup.hasQuotient.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (MonoidHom.range.{u1, u1} C (CommGroup.toGroup.{u1} C _inst_5) C (CommGroup.toGroup.{u1} C _inst_5) (zpowGroupHom.{u1} C (CommGroup.toDivisionCommMonoid.{u1} C _inst_5) n))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (QuotientGroup.Quotient.group.{u1} A (CommGroup.toGroup.{u1} A _inst_3) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)) (QuotientGroup.equivQuotientZPowOfEquiv._proof_1.{u1} A _inst_3 n)))))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (QuotientGroup.homQuotientZPowOfHom._proof_1.{u1} B _inst_4 n)))))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} C (Subgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (QuotientGroup.Subgroup.hasQuotient.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (MonoidHom.range.{u1, u1} C (CommGroup.toGroup.{u1} C _inst_5) C (CommGroup.toGroup.{u1} C _inst_5) (zpowGroupHom.{u1} C (CommGroup.toDivisionCommMonoid.{u1} C _inst_5) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} C (Subgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (QuotientGroup.Subgroup.hasQuotient.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (MonoidHom.range.{u1, u1} C (CommGroup.toGroup.{u1} C _inst_5) C (CommGroup.toGroup.{u1} C _inst_5) (zpowGroupHom.{u1} C (CommGroup.toDivisionCommMonoid.{u1} C _inst_5) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} C (Subgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (QuotientGroup.Subgroup.hasQuotient.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (MonoidHom.range.{u1, u1} C (CommGroup.toGroup.{u1} C _inst_5) C (CommGroup.toGroup.{u1} C _inst_5) (zpowGroupHom.{u1} C (CommGroup.toDivisionCommMonoid.{u1} C _inst_5) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} C (Subgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (QuotientGroup.Subgroup.hasQuotient.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (MonoidHom.range.{u1, u1} C (CommGroup.toGroup.{u1} C _inst_5) C (CommGroup.toGroup.{u1} C _inst_5) (zpowGroupHom.{u1} C (CommGroup.toDivisionCommMonoid.{u1} C _inst_5) n))) (QuotientGroup.Quotient.group.{u1} C (CommGroup.toGroup.{u1} C _inst_5) (MonoidHom.range.{u1, u1} C (CommGroup.toGroup.{u1} C _inst_5) C (CommGroup.toGroup.{u1} C _inst_5) (zpowGroupHom.{u1} C (CommGroup.toDivisionCommMonoid.{u1} C _inst_5) n)) (QuotientGroup.homQuotientZPowOfHom._proof_1.{u1} C _inst_5 n)))))) (QuotientGroup.equivQuotientZPowOfEquiv.{u1} A B _inst_3 _inst_4 e n) (QuotientGroup.equivQuotientZPowOfEquiv.{u1} B C _inst_4 _inst_5 d n)) (QuotientGroup.equivQuotientZPowOfEquiv.{u1} A C _inst_3 _inst_5 (MulEquiv.trans.{u1, u1, u1} A B C (MulOneClass.toHasMul.{u1} A (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (MulOneClass.toHasMul.{u1} B (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (MulOneClass.toHasMul.{u1} C (Monoid.toMulOneClass.{u1} C (DivInvMonoid.toMonoid.{u1} C (Group.toDivInvMonoid.{u1} C (CommGroup.toGroup.{u1} C _inst_5))))) e d) n)
-but is expected to have type
-  forall {A : Type.{u1}} {B : Type.{u1}} {C : Type.{u1}} [_inst_3 : CommGroup.{u1} A] [_inst_4 : CommGroup.{u1} B] [_inst_5 : CommGroup.{u1} C] (e : MulEquiv.{u1, u1} A B (MulOneClass.toMul.{u1} A (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (MulOneClass.toMul.{u1} B (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))))) (d : MulEquiv.{u1, u1} B C (MulOneClass.toMul.{u1} B (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (MulOneClass.toMul.{u1} C (Monoid.toMulOneClass.{u1} C (DivInvMonoid.toMonoid.{u1} C (Group.toDivInvMonoid.{u1} C (CommGroup.toGroup.{u1} C _inst_5)))))) (n : Int), Eq.{succ u1} (MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (HasQuotient.Quotient.{u1, u1} C (Subgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (QuotientGroup.instHasQuotientSubgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (MonoidHom.range.{u1, u1} C (CommGroup.toGroup.{u1} C _inst_5) C (CommGroup.toGroup.{u1} C _inst_5) (zpowGroupHom.{u1} C (CommGroup.toDivisionCommMonoid.{u1} C _inst_5) n))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (QuotientGroup.Quotient.group.{u1} A (CommGroup.toGroup.{u1} A _inst_3) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)) (Subgroup.normal_of_comm.{u1} A _inst_3 (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)))))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} C (Subgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (QuotientGroup.instHasQuotientSubgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (MonoidHom.range.{u1, u1} C (CommGroup.toGroup.{u1} C _inst_5) C (CommGroup.toGroup.{u1} C _inst_5) (zpowGroupHom.{u1} C (CommGroup.toDivisionCommMonoid.{u1} C _inst_5) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} C (Subgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (QuotientGroup.instHasQuotientSubgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (MonoidHom.range.{u1, u1} C (CommGroup.toGroup.{u1} C _inst_5) C (CommGroup.toGroup.{u1} C _inst_5) (zpowGroupHom.{u1} C (CommGroup.toDivisionCommMonoid.{u1} C _inst_5) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} C (Subgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (QuotientGroup.instHasQuotientSubgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (MonoidHom.range.{u1, u1} C (CommGroup.toGroup.{u1} C _inst_5) C (CommGroup.toGroup.{u1} C _inst_5) (zpowGroupHom.{u1} C (CommGroup.toDivisionCommMonoid.{u1} C _inst_5) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} C (Subgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (QuotientGroup.instHasQuotientSubgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (MonoidHom.range.{u1, u1} C (CommGroup.toGroup.{u1} C _inst_5) C (CommGroup.toGroup.{u1} C _inst_5) (zpowGroupHom.{u1} C (CommGroup.toDivisionCommMonoid.{u1} C _inst_5) n))) (QuotientGroup.Quotient.group.{u1} C (CommGroup.toGroup.{u1} C _inst_5) (MonoidHom.range.{u1, u1} C (CommGroup.toGroup.{u1} C _inst_5) C (CommGroup.toGroup.{u1} C _inst_5) (zpowGroupHom.{u1} C (CommGroup.toDivisionCommMonoid.{u1} C _inst_5) n)) (Subgroup.normal_of_comm.{u1} C _inst_5 (MonoidHom.range.{u1, u1} C (CommGroup.toGroup.{u1} C _inst_5) C (CommGroup.toGroup.{u1} C _inst_5) (zpowGroupHom.{u1} C (CommGroup.toDivisionCommMonoid.{u1} C _inst_5) n))))))))) (MulEquiv.trans.{u1, u1, u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (HasQuotient.Quotient.{u1, u1} C (Subgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (QuotientGroup.instHasQuotientSubgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (MonoidHom.range.{u1, u1} C (CommGroup.toGroup.{u1} C _inst_5) C (CommGroup.toGroup.{u1} C _inst_5) (zpowGroupHom.{u1} C (CommGroup.toDivisionCommMonoid.{u1} C _inst_5) n))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (QuotientGroup.Quotient.group.{u1} A (CommGroup.toGroup.{u1} A _inst_3) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)) (Subgroup.normal_of_comm.{u1} A _inst_3 (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)))))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)))))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} C (Subgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (QuotientGroup.instHasQuotientSubgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (MonoidHom.range.{u1, u1} C (CommGroup.toGroup.{u1} C _inst_5) C (CommGroup.toGroup.{u1} C _inst_5) (zpowGroupHom.{u1} C (CommGroup.toDivisionCommMonoid.{u1} C _inst_5) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} C (Subgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (QuotientGroup.instHasQuotientSubgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (MonoidHom.range.{u1, u1} C (CommGroup.toGroup.{u1} C _inst_5) C (CommGroup.toGroup.{u1} C _inst_5) (zpowGroupHom.{u1} C (CommGroup.toDivisionCommMonoid.{u1} C _inst_5) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} C (Subgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (QuotientGroup.instHasQuotientSubgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (MonoidHom.range.{u1, u1} C (CommGroup.toGroup.{u1} C _inst_5) C (CommGroup.toGroup.{u1} C _inst_5) (zpowGroupHom.{u1} C (CommGroup.toDivisionCommMonoid.{u1} C _inst_5) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} C (Subgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (QuotientGroup.instHasQuotientSubgroup.{u1} C (CommGroup.toGroup.{u1} C _inst_5)) (MonoidHom.range.{u1, u1} C (CommGroup.toGroup.{u1} C _inst_5) C (CommGroup.toGroup.{u1} C _inst_5) (zpowGroupHom.{u1} C (CommGroup.toDivisionCommMonoid.{u1} C _inst_5) n))) (QuotientGroup.Quotient.group.{u1} C (CommGroup.toGroup.{u1} C _inst_5) (MonoidHom.range.{u1, u1} C (CommGroup.toGroup.{u1} C _inst_5) C (CommGroup.toGroup.{u1} C _inst_5) (zpowGroupHom.{u1} C (CommGroup.toDivisionCommMonoid.{u1} C _inst_5) n)) (Subgroup.normal_of_comm.{u1} C _inst_5 (MonoidHom.range.{u1, u1} C (CommGroup.toGroup.{u1} C _inst_5) C (CommGroup.toGroup.{u1} C _inst_5) (zpowGroupHom.{u1} C (CommGroup.toDivisionCommMonoid.{u1} C _inst_5) n)))))))) (QuotientGroup.equivQuotientZPowOfEquiv.{u1} A B _inst_3 _inst_4 e n) (QuotientGroup.equivQuotientZPowOfEquiv.{u1} B C _inst_4 _inst_5 d n)) (QuotientGroup.equivQuotientZPowOfEquiv.{u1} A C _inst_3 _inst_5 (MulEquiv.trans.{u1, u1, u1} A B C (MulOneClass.toMul.{u1} A (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (MulOneClass.toMul.{u1} B (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (MulOneClass.toMul.{u1} C (Monoid.toMulOneClass.{u1} C (DivInvMonoid.toMonoid.{u1} C (Group.toDivInvMonoid.{u1} C (CommGroup.toGroup.{u1} C _inst_5))))) e d) n)
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.equiv_quotient_zpow_of_equiv_trans QuotientGroup.equivQuotientZPowOfEquiv_transₓ'. -/
 @[simp, to_additive]
 theorem equivQuotientZPowOfEquiv_trans :
@@ -902,10 +818,7 @@ section SndIsomorphismThm
 open _Root_.Subgroup
 
 /- warning: quotient_group.quotient_inf_equiv_prod_normal_quotient -> QuotientGroup.quotientInfEquivProdNormalQuotient is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (H : Subgroup.{u1} G _inst_1) (N : Subgroup.{u1} G _inst_1) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 N], MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H) (Subgroup.subgroupOf.{u1} G _inst_1 N H) (Subgroup.normal_subgroupOf.{u1} G _inst_1 H N _inst_3)))))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.subgroupOf.{u1} G _inst_1 N (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (QuotientGroup.quotientInfEquivProdNormalQuotient._proof_1.{u1} G _inst_1 H N _inst_3))))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (H : Subgroup.{u1} G _inst_1) (N : Subgroup.{u1} G _inst_1) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 N], MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H) (Subgroup.subgroupOf.{u1} G _inst_1 N H) (Subgroup.normal_subgroupOf.{u1} G _inst_1 H N _inst_3)))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N)) (Subgroup.subgroupOf.{u1} G _inst_1 N (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N)) (Subgroup.normal_subgroupOf.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N) N _inst_3))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_inf_equiv_prod_normal_quotient QuotientGroup.quotientInfEquivProdNormalQuotientₓ'. -/
 /-- **Noether's second isomorphism theorem**: given two subgroups `H` and `N` of a group `G`, where
 `N` is normal, defines an isomorphism between `H/(H ∩ N)` and `(HN)/N`. -/
@@ -968,10 +881,7 @@ def quotientQuotientEquivQuotientAux : (G ⧸ N) ⧸ M.map (mk' N) →* G ⧸ M
 #align quotient_add_group.quotient_quotient_equiv_quotient_aux QuotientAddGroup.quotientQuotientEquivQuotientAux
 
 /- warning: quotient_group.quotient_quotient_equiv_quotient_aux_coe -> QuotientGroup.quotientQuotientEquivQuotientAux_mk is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M] (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N M) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) => (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M)) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (QuotientGroup.quotientQuotientEquivQuotientAux.{u1} G _inst_1 N nN M nM h) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasLiftT.mk.{succ u1, succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (CoeTCₓ.coe.{succ u1, succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)))) x)) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M)) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 M nM (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) x)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M] (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N M) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (fun (_x : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM)))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))) (QuotientGroup.quotientQuotientEquivQuotientAux.{u1} G _inst_1 N nN M nM h) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 M nM (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) x)
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_quotient_equiv_quotient_aux_coe QuotientGroup.quotientQuotientEquivQuotientAux_mkₓ'. -/
 @[simp, to_additive]
 theorem quotientQuotientEquivQuotientAux_mk (x : G ⧸ N) :
@@ -981,10 +891,7 @@ theorem quotientQuotientEquivQuotientAux_mk (x : G ⧸ N) :
 #align quotient_add_group.quotient_quotient_equiv_quotient_aux_coe QuotientAddGroup.quotientQuotientEquivQuotientAux_mk
 
 /- warning: quotient_group.quotient_quotient_equiv_quotient_aux_coe_coe -> QuotientGroup.quotientQuotientEquivQuotientAux_mk_mk is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M] (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N M) (x : G), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) => (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M)) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (QuotientGroup.quotientQuotientEquivQuotientAux.{u1} G _inst_1 N nN M nM h) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasLiftT.mk.{succ u1, succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (CoeTCₓ.coe.{succ u1, succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) x))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 M))) x)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M] (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N M) (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.mk.{u1} G _inst_1 N x))) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (fun (_x : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM)))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))) (QuotientGroup.quotientQuotientEquivQuotientAux.{u1} G _inst_1 N nN M nM h) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.mk.{u1} G _inst_1 N x))) (QuotientGroup.mk.{u1} G _inst_1 M x)
+<too large>
 Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_quotient_equiv_quotient_aux_coe_coe QuotientGroup.quotientQuotientEquivQuotientAux_mk_mkₓ'. -/
 @[to_additive]
 theorem quotientQuotientEquivQuotientAux_mk_mk (x : G) :
Diff
@@ -99,7 +99,7 @@ def mk' : G →* G ⧸ N :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N], Eq.{succ u1} ((fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (QuotientGroup.mk'.{u1} G _inst_1 N nN)) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N], Eq.{succ u1} (forall (a : G), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) a) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN)) (QuotientGroup.mk.{u1} G _inst_1 N)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N], Eq.{succ u1} (forall (a : G), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) a) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN)) (QuotientGroup.mk.{u1} G _inst_1 N)
 Case conversion may be inaccurate. Consider using '#align quotient_group.coe_mk' QuotientGroup.coe_mk'ₓ'. -/
 @[simp, to_additive]
 theorem coe_mk' : (mk' N : G → G ⧸ N) = coe :=
@@ -111,7 +111,7 @@ theorem coe_mk' : (mk' N : G → G ⧸ N) = coe :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (x : G), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) x)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x) (QuotientGroup.mk.{u1} G _inst_1 N x)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x) (QuotientGroup.mk.{u1} G _inst_1 N x)
 Case conversion may be inaccurate. Consider using '#align quotient_group.mk'_apply QuotientGroup.mk'_applyₓ'. -/
 @[simp, to_additive]
 theorem mk'_apply (x : G) : mk' N x = x :=
@@ -123,7 +123,7 @@ theorem mk'_apply (x : G) : mk' N x = x :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N], Function.Surjective.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N], Function.Surjective.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N], Function.Surjective.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN))
 Case conversion may be inaccurate. Consider using '#align quotient_group.mk'_surjective QuotientGroup.mk'_surjectiveₓ'. -/
 @[to_additive]
 theorem mk'_surjective : Surjective <| mk' N :=
@@ -135,7 +135,7 @@ theorem mk'_surjective : Surjective <| mk' N :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {x : G} {y : G}, Iff (Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) y)) (Exists.{succ u1} G (fun (z : G) => Exists.{0} (Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) z N) (fun (H : Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) z N) => Eq.{succ u1} G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) x z) y)))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {x : G} {y : G}, Iff (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) y)) (Exists.{succ u1} G (fun (z : G) => And (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) z N) (Eq.{succ u1} G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) x z) y)))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {x : G} {y : G}, Iff (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) y)) (Exists.{succ u1} G (fun (z : G) => And (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) z N) (Eq.{succ u1} G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) x z) y)))
 Case conversion may be inaccurate. Consider using '#align quotient_group.mk'_eq_mk' QuotientGroup.mk'_eq_mk'ₓ'. -/
 @[to_additive]
 theorem mk'_eq_mk' {x y : G} : mk' N x = mk' N y ↔ ∃ z ∈ N, x * z = y :=
@@ -279,7 +279,7 @@ theorem mk_zpow (a : G) (n : ℤ) : ((a ^ n : G) : Q ) = a ^ n :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), (forall (x : G), (Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) x N) -> (Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ x) (OfNat.ofNat.{u2} H 1 (OfNat.mk.{u2} H 1 (One.one.{u2} H (MulOneClass.toHasOne.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))))))) -> (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), (forall (x : G), (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (Group.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) _inst_2)))))))) -> (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), (forall (x : G), (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (Group.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) _inst_2)))))))) -> (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))
 Case conversion may be inaccurate. Consider using '#align quotient_group.lift QuotientGroup.liftₓ'. -/
 /-- A group homomorphism `φ : G →* H` with `N ⊆ ker(φ)` descends (i.e. `lift`s) to a
 group homomorphism `G/N →* H`. -/
@@ -300,7 +300,7 @@ def lift (φ : G →* H) (HN : ∀ x ∈ N, φ x = 1) : Q →* H :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) x N) -> (Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ x) (OfNat.ofNat.{u2} H 1 (OfNat.mk.{u2} H 1 (One.one.{u2} H (MulOneClass.toHasOne.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))))))) (g : G), Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> H) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) g)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ g)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (Group.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) _inst_2)))))))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) (QuotientGroup.mk.{u1} G _inst_1 N g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (QuotientGroup.mk.{u1} G _inst_1 N g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (Group.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) _inst_2)))))))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) (QuotientGroup.mk.{u1} G _inst_1 N g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (QuotientGroup.mk.{u1} G _inst_1 N g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
 Case conversion may be inaccurate. Consider using '#align quotient_group.lift_mk QuotientGroup.lift_mkₓ'. -/
 @[simp, to_additive]
 theorem lift_mk {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N φ HN (g : Q ) = φ g :=
@@ -312,7 +312,7 @@ theorem lift_mk {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N φ
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) x N) -> (Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ x) (OfNat.ofNat.{u2} H 1 (OfNat.mk.{u2} H 1 (One.one.{u2} H (MulOneClass.toHasOne.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))))))) (g : G), Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> H) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (QuotientGroup.mk.{u1} G _inst_1 N g)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ g)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (Group.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) _inst_2)))))))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) (QuotientGroup.mk.{u1} G _inst_1 N g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (QuotientGroup.mk.{u1} G _inst_1 N g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (Group.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) _inst_2)))))))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) (QuotientGroup.mk.{u1} G _inst_1 N g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (QuotientGroup.mk.{u1} G _inst_1 N g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
 Case conversion may be inaccurate. Consider using '#align quotient_group.lift_mk' QuotientGroup.lift_mk'ₓ'. -/
 @[simp, to_additive]
 theorem lift_mk' {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N φ HN (mk g : Q ) = φ g :=
@@ -324,7 +324,7 @@ theorem lift_mk' {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N 
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) x N) -> (Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ x) (OfNat.ofNat.{u2} H 1 (OfNat.mk.{u2} H 1 (One.one.{u2} H (MulOneClass.toHasOne.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))))))) (g : G), Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> H) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (Quot.mk.{succ u1} G (Setoid.r.{succ u1} G (QuotientGroup.leftRel.{u1} G _inst_1 N)) g)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ g)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (Group.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) _inst_2)))))))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) (Quot.mk.{succ u1} G (Setoid.r.{succ u1} G (QuotientGroup.leftRel.{u1} G _inst_1 N)) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (Quot.mk.{succ u1} G (Setoid.r.{succ u1} G (QuotientGroup.leftRel.{u1} G _inst_1 N)) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) (Group.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) _inst_2)))))))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) (Quot.mk.{succ u1} G (Setoid.r.{succ u1} G (QuotientGroup.leftRel.{u1} G _inst_1 N)) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (Quot.mk.{succ u1} G (Setoid.r.{succ u1} G (QuotientGroup.leftRel.{u1} G _inst_1 N)) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
 Case conversion may be inaccurate. Consider using '#align quotient_group.lift_quot_mk QuotientGroup.lift_quot_mkₓ'. -/
 @[simp, to_additive]
 theorem lift_quot_mk {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) :
@@ -356,7 +356,7 @@ def map (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f) : G ⧸
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (x : G), Eq.{succ u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M)) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_3 f h) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) x)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasLiftT.mk.{succ u2, succ u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (CoeTCₓ.coe.{succ u2, succ u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u2} H _inst_2 M))) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) f x))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.mk.{u1} G _inst_1 N x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3)))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_3 f h) (QuotientGroup.mk.{u1} G _inst_1 N x)) (QuotientGroup.mk.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) _inst_2 M (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) f x))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.mk.{u1} G _inst_1 N x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3)))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_3 f h) (QuotientGroup.mk.{u1} G _inst_1 N x)) (QuotientGroup.mk.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) _inst_2 M (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) f x))
 Case conversion may be inaccurate. Consider using '#align quotient_group.map_coe QuotientGroup.map_mkₓ'. -/
 @[simp, to_additive]
 theorem map_mk (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f) (x : G) :
@@ -369,7 +369,7 @@ theorem map_mk (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f)
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (x : G), Eq.{succ u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M)) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_3 f h) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasLiftT.mk.{succ u2, succ u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (CoeTCₓ.coe.{succ u2, succ u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u2} H _inst_2 M))) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) f x))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (a : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) a) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3)))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_3 f h) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x)) (QuotientGroup.mk.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) _inst_2 M (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) f x))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (a : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) a) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3)))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_3 f h) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x)) (QuotientGroup.mk.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) x) _inst_2 M (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) f x))
 Case conversion may be inaccurate. Consider using '#align quotient_group.map_mk' QuotientGroup.map_mk'ₓ'. -/
 @[to_additive]
 theorem map_mk' (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f) (x : G) :
@@ -382,7 +382,7 @@ theorem map_mk' (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f)
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (h : optParam.{0} (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N)) (Eq.le.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1))) (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N) N (Subgroup.comap_id.{u1} G _inst_1 N))) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 N nN (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) x) x
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (h : optParam.{0} (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N)) (Eq.le.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1)))) (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N) N (Subgroup.comap_id.{u1} G _inst_1 N))) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 N nN (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) x) x
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (h : optParam.{0} (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N)) (Eq.le.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1)))) (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N) N (Subgroup.comap_id.{u1} G _inst_1 N))) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 N nN (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) x) x
 Case conversion may be inaccurate. Consider using '#align quotient_group.map_id_apply QuotientGroup.map_id_applyₓ'. -/
 @[to_additive]
 theorem map_id_apply (h : N ≤ Subgroup.comap (MonoidHom.id _) N := (Subgroup.comap_id N).le) (x) :
@@ -408,7 +408,7 @@ theorem map_id (h : N ≤ Subgroup.comap (MonoidHom.id _) N := (Subgroup.comap_i
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {I : Type.{u3}} [_inst_3 : Group.{u3} I] (M : Subgroup.{u2} H _inst_2) (O : Subgroup.{u3} I _inst_3) [_inst_4 : Subgroup.Normal.{u2} H _inst_2 M] [_inst_5 : Subgroup.Normal.{u3} I _inst_3 O] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : MonoidHom.{u2, u3} H I (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3)))) (hf : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (hg : LE.le.{u2} (Subgroup.{u2} H _inst_2) (Preorder.toHasLe.{u2} (Subgroup.{u2} H _inst_2) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} H _inst_2) (SetLike.partialOrder.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)))) M (Subgroup.comap.{u2, u3} H _inst_2 I _inst_3 g O)) (hgf : optParam.{0} (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u3} G _inst_1 I _inst_3 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) O)) (LE.le.trans.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u1, u3} G _inst_1 I _inst_3 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) O) hf (LE.le.trans_eq.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1))) (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f (Subgroup.comap.{u2, u3} H _inst_2 I _inst_3 g O)) (Subgroup.comap.{u1, u3} G _inst_1 I _inst_3 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) O) (Subgroup.comap_mono.{u1, u2} G _inst_1 H _inst_2 f M (Subgroup.comap.{u2, u3} H _inst_2 I _inst_3 g O) hg) (Subgroup.comap_comap.{u1, u2, u3} G _inst_1 H _inst_2 I _inst_3 O g f)))) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N), Eq.{succ u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) (fun (_x : MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) => (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) -> (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O)) (MonoidHom.hasCoeToFun.{u2, u3} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) (QuotientGroup.map.{u2, u3} H _inst_2 M _inst_4 I _inst_3 O _inst_5 g hg) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4))))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M)) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_4 f hf) x)) (coeFn.{max (succ u3) (succ u1), max (succ u1) (succ u3)} (MonoidHom.{u1, u3} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) (fun (_x : MonoidHom.{u1, u3} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O)) (MonoidHom.hasCoeToFun.{u1, u3} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) (QuotientGroup.map.{u1, u3} G _inst_1 N nN I _inst_3 O _inst_5 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) hgf) x)
 but is expected to have type
-  forall {G : Type.{u2}} [_inst_1 : Group.{u2} G] (N : Subgroup.{u2} G _inst_1) [nN : Subgroup.Normal.{u2} G _inst_1 N] {H : Type.{u3}} [_inst_2 : Group.{u3} H] {I : Type.{u1}} [_inst_3 : Group.{u1} I] (M : Subgroup.{u3} H _inst_2) (O : Subgroup.{u1} I _inst_3) [_inst_4 : Subgroup.Normal.{u3} H _inst_2 M] [_inst_5 : Subgroup.Normal.{u1} I _inst_3 O] (f : MonoidHom.{u2, u3} G H (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2)))) (g : MonoidHom.{u3, u1} H I (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3)))) (hf : LE.le.{u2} (Subgroup.{u2} G _inst_1) (Preorder.toLE.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1))))) N (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M)) (hg : LE.le.{u3} (Subgroup.{u3} H _inst_2) (Preorder.toLE.{u3} (Subgroup.{u3} H _inst_2) (PartialOrder.toPreorder.{u3} (Subgroup.{u3} H _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (Subgroup.{u3} H _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Subgroup.{u3} H _inst_2) (Subgroup.instCompleteLatticeSubgroup.{u3} H _inst_2))))) M (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O)) (hgf : optParam.{0} (LE.le.{u2} (Subgroup.{u2} G _inst_1) (Preorder.toLE.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1))))) N (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O)) (LE.le.trans.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1)))) N (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O) hf (LE.le.trans_eq.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1)))) (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O)) (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O) (Subgroup.comap_mono.{u3, u2} G _inst_1 H _inst_2 f M (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O) hg) (Subgroup.comap_comap.{u2, u3, u1} G _inst_1 H _inst_2 I _inst_3 O g f)))) (x : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) => HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (fun (a : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) a) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN))))) (MulOneClass.toMul.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (MonoidHom.monoidHomClass.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))))) (QuotientGroup.map.{u2, u3} G _inst_1 N nN H _inst_2 M _inst_4 f hf) x)) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (fun (_x : HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) => HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (MulOneClass.toMul.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5)))) (MonoidHom.monoidHomClass.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))))) (QuotientGroup.map.{u3, u1} H _inst_2 M _inst_4 I _inst_3 O _inst_5 g hg) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN))))) (MulOneClass.toMul.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (MonoidHom.monoidHomClass.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))))) (QuotientGroup.map.{u2, u3} G _inst_1 N nN H _inst_2 M _inst_4 f hf) x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5)))) (MonoidHom.monoidHomClass.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))))) (QuotientGroup.map.{u2, u1} G _inst_1 N nN I _inst_3 O _inst_5 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) hgf) x)
+  forall {G : Type.{u2}} [_inst_1 : Group.{u2} G] (N : Subgroup.{u2} G _inst_1) [nN : Subgroup.Normal.{u2} G _inst_1 N] {H : Type.{u3}} [_inst_2 : Group.{u3} H] {I : Type.{u1}} [_inst_3 : Group.{u1} I] (M : Subgroup.{u3} H _inst_2) (O : Subgroup.{u1} I _inst_3) [_inst_4 : Subgroup.Normal.{u3} H _inst_2 M] [_inst_5 : Subgroup.Normal.{u1} I _inst_3 O] (f : MonoidHom.{u2, u3} G H (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2)))) (g : MonoidHom.{u3, u1} H I (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3)))) (hf : LE.le.{u2} (Subgroup.{u2} G _inst_1) (Preorder.toLE.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1))))) N (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M)) (hg : LE.le.{u3} (Subgroup.{u3} H _inst_2) (Preorder.toLE.{u3} (Subgroup.{u3} H _inst_2) (PartialOrder.toPreorder.{u3} (Subgroup.{u3} H _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (Subgroup.{u3} H _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Subgroup.{u3} H _inst_2) (Subgroup.instCompleteLatticeSubgroup.{u3} H _inst_2))))) M (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O)) (hgf : optParam.{0} (LE.le.{u2} (Subgroup.{u2} G _inst_1) (Preorder.toLE.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1))))) N (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O)) (LE.le.trans.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1)))) N (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O) hf (LE.le.trans_eq.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1)))) (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O)) (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O) (Subgroup.comap_mono.{u3, u2} G _inst_1 H _inst_2 f M (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O) hg) (Subgroup.comap_comap.{u2, u3, u1} G _inst_1 H _inst_2 I _inst_3 O g f)))) (x : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) => HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (fun (a : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) a) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN))))) (MulOneClass.toMul.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (MonoidHom.monoidHomClass.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))))) (QuotientGroup.map.{u2, u3} G _inst_1 N nN H _inst_2 M _inst_4 f hf) x)) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (fun (_x : HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) => HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (MulOneClass.toMul.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5)))) (MonoidHom.monoidHomClass.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))))) (QuotientGroup.map.{u3, u1} H _inst_2 M _inst_4 I _inst_3 O _inst_5 g hg) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN))))) (MulOneClass.toMul.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (MonoidHom.monoidHomClass.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))))) (QuotientGroup.map.{u2, u3} G _inst_1 N nN H _inst_2 M _inst_4 f hf) x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5)))) (MonoidHom.monoidHomClass.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))))) (QuotientGroup.map.{u2, u1} G _inst_1 N nN I _inst_3 O _inst_5 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) hgf) x)
 Case conversion may be inaccurate. Consider using '#align quotient_group.map_map QuotientGroup.map_mapₓ'. -/
 @[simp, to_additive]
 theorem map_map {I : Type _} [Group I] (M : Subgroup H) (O : Subgroup I) [M.Normal] [O.Normal]
@@ -489,7 +489,7 @@ theorem congr_mk (e : G ≃* H) (he : G'.map ↑e = H') (x) : congr G' H' e he (
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (G' : Subgroup.{u1} G _inst_1) (H' : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] [_inst_4 : Subgroup.Normal.{u2} H _inst_2 H'] (e : MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (he : Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.monoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.mulEquivClass.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))))))) e) G') H') (x : G), Eq.{succ u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (fun (_x : MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H')) (MulEquiv.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (QuotientGroup.congr.{u1, u2} G _inst_1 H _inst_2 G' H' _inst_3 _inst_4 e he) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G')) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (QuotientGroup.mk'.{u1} G _inst_1 G' _inst_3) x)) (coeFn.{succ u2, succ u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (fun (_x : MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) => H -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H')) (MonoidHom.hasCoeToFun.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (QuotientGroup.mk'.{u2} H _inst_2 H' _inst_4) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (fun (_x : MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) => G -> H) (MulEquiv.hasCoeToFun.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) e x))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (G' : Subgroup.{u1} G _inst_1) (H' : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] [_inst_4 : Subgroup.Normal.{u2} H _inst_2 H'] (e : MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (he : Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 (MonoidHomClass.toMonoidHom.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.instMonoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) e) G') H') (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (fun (a : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') a) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))))) (QuotientGroup.mk'.{u1} G _inst_1 G' _inst_3) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))))) (QuotientGroup.congr.{u1, u2} G _inst_1 H _inst_2 G' H' _inst_3 _inst_4 e he) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))))) (QuotientGroup.mk'.{u1} G _inst_1 G' _inst_3) x)) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : H) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))) (MonoidHom.monoidHomClass.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))) (QuotientGroup.mk'.{u2} H _inst_2 H' _inst_4) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => H) _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))))) e x))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (G' : Subgroup.{u1} G _inst_1) (H' : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] [_inst_4 : Subgroup.Normal.{u2} H _inst_2 H'] (e : MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (he : Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 (MonoidHomClass.toMonoidHom.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.instMonoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) e) G') H') (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (fun (a : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') a) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))))) (QuotientGroup.mk'.{u1} G _inst_1 G' _inst_3) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))))) (QuotientGroup.congr.{u1, u2} G _inst_1 H _inst_2 G' H' _inst_3 _inst_4 e he) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))))) (QuotientGroup.mk'.{u1} G _inst_1 G' _inst_3) x)) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : H) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))) (MonoidHom.monoidHomClass.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))) (QuotientGroup.mk'.{u2} H _inst_2 H' _inst_4) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => H) _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))))) e x))
 Case conversion may be inaccurate. Consider using '#align quotient_group.congr_mk' QuotientGroup.congr_mk'ₓ'. -/
 theorem congr_mk' (e : G ≃* H) (he : G'.map ↑e = H') (x) :
     congr G' H' e he (mk' G' x) = mk' H' (e x) :=
@@ -500,7 +500,7 @@ theorem congr_mk' (e : G ≃* H) (he : G'.map ↑e = H') (x) :
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (G' : Subgroup.{u1} G _inst_1) (H' : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] [_inst_4 : Subgroup.Normal.{u2} H _inst_2 H'] (e : MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (he : Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.monoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.mulEquivClass.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))))))) e) G') H') (x : G), Eq.{succ u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (fun (_x : MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H')) (MulEquiv.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (QuotientGroup.congr.{u1, u2} G _inst_1 H _inst_2 G' H' _inst_3 _inst_4 e he) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 G'))) x)) (coeFn.{succ u2, succ u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (fun (_x : MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) => H -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H')) (MonoidHom.hasCoeToFun.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (QuotientGroup.mk'.{u2} H _inst_2 H' _inst_4) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (fun (_x : MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) => G -> H) (MulEquiv.hasCoeToFun.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) e x))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (G' : Subgroup.{u1} G _inst_1) (H' : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] [_inst_4 : Subgroup.Normal.{u2} H _inst_2 H'] (e : MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (he : Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 (MonoidHomClass.toMonoidHom.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.instMonoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) e) G') H') (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.mk.{u1} G _inst_1 G' x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))))) (QuotientGroup.congr.{u1, u2} G _inst_1 H _inst_2 G' H' _inst_3 _inst_4 e he) (QuotientGroup.mk.{u1} G _inst_1 G' x)) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : H) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))) (MonoidHom.monoidHomClass.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))) (QuotientGroup.mk'.{u2} H _inst_2 H' _inst_4) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => H) _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))))) e x))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (G' : Subgroup.{u1} G _inst_1) (H' : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] [_inst_4 : Subgroup.Normal.{u2} H _inst_2 H'] (e : MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (he : Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 (MonoidHomClass.toMonoidHom.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.instMonoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) e) G') H') (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.mk.{u1} G _inst_1 G' x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))))) (QuotientGroup.congr.{u1, u2} G _inst_1 H _inst_2 G' H' _inst_3 _inst_4 e he) (QuotientGroup.mk.{u1} G _inst_1 G' x)) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : H) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))) (MonoidHom.monoidHomClass.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))) (QuotientGroup.mk'.{u2} H _inst_2 H' _inst_4) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => H) _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))))) e x))
 Case conversion may be inaccurate. Consider using '#align quotient_group.congr_apply QuotientGroup.congr_applyₓ'. -/
 @[simp]
 theorem congr_apply (e : G ≃* H) (he : G'.map ↑e = H') (x : G) :
@@ -553,7 +553,7 @@ def kerLift : G ⧸ ker φ →* H :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : G), Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) -> H) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))) g)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ g)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
 Case conversion may be inaccurate. Consider using '#align quotient_group.ker_lift_mk QuotientGroup.kerLift_mkₓ'. -/
 @[simp, to_additive]
 theorem kerLift_mk (g : G) : (kerLift φ) g = φ g :=
@@ -565,7 +565,7 @@ theorem kerLift_mk (g : G) : (kerLift φ) g = φ g :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : G), Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) -> H) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ g)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
 Case conversion may be inaccurate. Consider using '#align quotient_group.ker_lift_mk' QuotientGroup.kerLift_mk'ₓ'. -/
 @[simp, to_additive]
 theorem kerLift_mk' (g : G) : (kerLift φ) (mk g) = φ g :=
@@ -577,7 +577,7 @@ theorem kerLift_mk' (g : G) : (kerLift φ) (mk g) = φ g :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Injective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) -> H) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Injective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Injective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ))
 Case conversion may be inaccurate. Consider using '#align quotient_group.ker_lift_injective QuotientGroup.kerLift_injectiveₓ'. -/
 @[to_additive]
 theorem kerLift_injective : Injective (kerLift φ) := fun a b =>
@@ -605,7 +605,7 @@ def rangeKerLift : G ⧸ ker φ →* φ.range :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Injective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.rangeKerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))))) (Monoid.toMulOneClass.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (DivInvMonoid.toMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Group.toDivInvMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Subgroup.toGroup.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.rangeKerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))))) (Monoid.toMulOneClass.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (DivInvMonoid.toMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Group.toDivInvMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Subgroup.toGroup.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) -> (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.rangeKerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))))) (Monoid.toMulOneClass.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (DivInvMonoid.toMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Group.toDivInvMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Subgroup.toGroup.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (QuotientGroup.rangeKerLift.{u1, u2} G _inst_1 H _inst_2 φ))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Injective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (QuotientGroup.rangeKerLift.{u1, u2} G _inst_1 H _inst_2 φ))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Injective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (QuotientGroup.rangeKerLift.{u1, u2} G _inst_1 H _inst_2 φ))
 Case conversion may be inaccurate. Consider using '#align quotient_group.range_ker_lift_injective QuotientGroup.rangeKerLift_injectiveₓ'. -/
 @[to_additive]
 theorem rangeKerLift_injective : Injective (rangeKerLift φ) := fun a b =>
@@ -620,7 +620,7 @@ theorem rangeKerLift_injective : Injective (rangeKerLift φ) := fun a b =>
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Surjective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.rangeKerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))))) (Monoid.toMulOneClass.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (DivInvMonoid.toMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Group.toDivInvMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Subgroup.toGroup.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.rangeKerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))))) (Monoid.toMulOneClass.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (DivInvMonoid.toMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Group.toDivInvMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Subgroup.toGroup.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) -> (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.rangeKerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))))) (Monoid.toMulOneClass.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (DivInvMonoid.toMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Group.toDivInvMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Subgroup.toGroup.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (QuotientGroup.rangeKerLift.{u1, u2} G _inst_1 H _inst_2 φ))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Surjective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (QuotientGroup.rangeKerLift.{u1, u2} G _inst_1 H _inst_2 φ))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Surjective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (QuotientGroup.rangeKerLift.{u1, u2} G _inst_1 H _inst_2 φ))
 Case conversion may be inaccurate. Consider using '#align quotient_group.range_ker_lift_surjective QuotientGroup.rangeKerLift_surjectiveₓ'. -/
 @[to_additive]
 theorem rangeKerLift_surjective : Surjective (rangeKerLift φ) :=
@@ -650,7 +650,7 @@ noncomputable def quotientKerEquivRange : G ⧸ ker φ ≃* range φ :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (ψ : H -> G), (Function.RightInverse.{succ u1, succ u2} G H ψ (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ)) -> (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.quotientKerEquivOfRightInverse._proof_1.{u1, u2} G _inst_1 H _inst_2 φ)))))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (ψ : H -> G), (Function.RightInverse.{succ u1, succ u2} G H ψ (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ)) -> (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (ψ : H -> G), (Function.RightInverse.{succ u1, succ u2} G H ψ (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ)) -> (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_ker_equiv_of_right_inverse QuotientGroup.quotientKerEquivOfRightInverseₓ'. -/
 /-- The canonical isomorphism `G/(ker φ) ≃* H` induced by a homomorphism `φ : G →* H`
 with a right inverse `ψ : H → G`. -/
@@ -683,7 +683,7 @@ def quotientBot : G ⧸ (⊥ : Subgroup G) ≃* G :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), (Function.Surjective.{succ u1, succ u2} G H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ)) -> (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.quotientKerEquivOfRightInverse._proof_1.{u1, u2} G _inst_1 H _inst_2 φ)))))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), (Function.Surjective.{succ u1, succ u2} G H (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ)) -> (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), (Function.Surjective.{succ u1, succ u2} G H (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ)) -> (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_ker_equiv_of_surjective QuotientGroup.quotientKerEquivOfSurjectiveₓ'. -/
 /-- The canonical isomorphism `G/(ker φ) ≃* H` induced by a surjection `φ : G →* H`.
 
@@ -746,7 +746,7 @@ def quotientMapSubgroupOfOfLe {A' A B' B : Subgroup G} [hAN : (A'.subgroupOf A).
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {A' : Subgroup.{u1} G _inst_1} {A : Subgroup.{u1} G _inst_1} {B' : Subgroup.{u1} G _inst_1} {B : Subgroup.{u1} G _inst_1} [hAN : Subgroup.Normal.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)] [hBN : Subgroup.Normal.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)] (h' : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) A' B') (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) A B) (x : coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) => (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) -> (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B))) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (QuotientGroup.quotientMapSubgroupOfOfLe.{u1} G _inst_1 A' A B' B hAN hBN h' h) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)))) x)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)))) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)))) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B))))) (fun (_x : MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)))) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B))))) => (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) -> (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B)) (MonoidHom.hasCoeToFun.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)))) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B))))) (Subgroup.inclusion.{u1} G _inst_1 A B h) x))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {A' : Subgroup.{u1} G _inst_1} {A : Subgroup.{u1} G _inst_1} {B' : Subgroup.{u1} G _inst_1} {B : Subgroup.{u1} G _inst_1} [hAN : Subgroup.Normal.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)] [hBN : Subgroup.Normal.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)] (h' : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) A' B') (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) A B) (x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) => HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.mk.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (fun (_x : HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) => HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))))) (QuotientGroup.quotientMapSubgroupOfOfLe.{u1} G _inst_1 A' A B' B hAN hBN h' h) (QuotientGroup.mk.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) x)) (QuotientGroup.mk.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) => Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) x) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (fun (_x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) => Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A))) (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B)) (MonoidHom.monoidHomClass.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))))) (Subgroup.inclusion.{u1} G _inst_1 A B h) x))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {A' : Subgroup.{u1} G _inst_1} {A : Subgroup.{u1} G _inst_1} {B' : Subgroup.{u1} G _inst_1} {B : Subgroup.{u1} G _inst_1} [hAN : Subgroup.Normal.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)] [hBN : Subgroup.Normal.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)] (h' : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) A' B') (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) A B) (x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) => HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.mk.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (fun (_x : HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) => HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))))) (QuotientGroup.quotientMapSubgroupOfOfLe.{u1} G _inst_1 A' A B' B hAN hBN h' h) (QuotientGroup.mk.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) x)) (QuotientGroup.mk.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) => Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) x) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (fun (_x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) => Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A))) (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B)) (MonoidHom.monoidHomClass.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))))) (Subgroup.inclusion.{u1} G _inst_1 A B h) x))
 Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_map_subgroup_of_of_le_coe QuotientGroup.quotientMapSubgroupOfOfLe_mkₓ'. -/
 @[simp, to_additive]
 theorem quotientMapSubgroupOfOfLe_mk {A' A B' B : Subgroup G} [hAN : (A'.subgroupOf A).Normal]
@@ -823,7 +823,7 @@ theorem homQuotientZPowOfHom_comp :
 lean 3 declaration is
   forall {A : Type.{u1}} {B : Type.{u1}} [_inst_3 : CommGroup.{u1} A] [_inst_4 : CommGroup.{u1} B] (f : MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (g : MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (n : Int), (Function.RightInverse.{succ u1, succ u1} A B (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (fun (_x : MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) => B -> A) (MonoidHom.hasCoeToFun.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) g) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (fun (_x : MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) => A -> B) (MonoidHom.hasCoeToFun.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) f)) -> (Eq.{succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (QuotientGroup.homQuotientZPowOfHom._proof_1.{u1} B _inst_4 n))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (QuotientGroup.homQuotientZPowOfHom._proof_2.{u1} B _inst_4 n)))))) (MonoidHom.comp.{u1, u1, u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (QuotientGroup.homQuotientZPowOfHom._proof_1.{u1} B _inst_4 n))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (QuotientGroup.Quotient.group.{u1} A (CommGroup.toGroup.{u1} A _inst_3) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)) (QuotientGroup.homQuotientZPowOfHom._proof_1.{u1} A _inst_3 n))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (QuotientGroup.homQuotientZPowOfHom._proof_2.{u1} B _inst_4 n))))) (QuotientGroup.homQuotientZPowOfHom.{u1} A B _inst_3 _inst_4 f n) (QuotientGroup.homQuotientZPowOfHom.{u1} B A _inst_4 _inst_3 g n)) (MonoidHom.id.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (QuotientGroup.homQuotientZPowOfHom._proof_1.{u1} B _inst_4 n)))))))
 but is expected to have type
-  forall {A : Type.{u1}} {B : Type.{u1}} [_inst_3 : CommGroup.{u1} A] [_inst_4 : CommGroup.{u1} B] (f : MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (g : MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (n : Int), (Function.RightInverse.{succ u1, succ u1} A B (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : B) => A) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) B A (MulOneClass.toMul.{u1} B (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (MulOneClass.toMul.{u1} A (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (MonoidHom.monoidHomClass.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))))) g) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : A) => B) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) A B (MulOneClass.toMul.{u1} A (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (MulOneClass.toMul.{u1} B (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (MonoidHom.monoidHomClass.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))))) f)) -> (Eq.{succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)))))))) (MonoidHom.comp.{u1, u1, u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (QuotientGroup.Quotient.group.{u1} A (CommGroup.toGroup.{u1} A _inst_3) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)) (Subgroup.normal_of_comm.{u1} A _inst_3 (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))))))) (QuotientGroup.homQuotientZPowOfHom.{u1} A B _inst_3 _inst_4 f n) (QuotientGroup.homQuotientZPowOfHom.{u1} B A _inst_4 _inst_3 g n)) (MonoidHom.id.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)))))))))
+  forall {A : Type.{u1}} {B : Type.{u1}} [_inst_3 : CommGroup.{u1} A] [_inst_4 : CommGroup.{u1} B] (f : MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (g : MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (n : Int), (Function.RightInverse.{succ u1, succ u1} A B (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : B) => A) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) B A (MulOneClass.toMul.{u1} B (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (MulOneClass.toMul.{u1} A (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (MonoidHom.monoidHomClass.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))))) g) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) A B (MulOneClass.toMul.{u1} A (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (MulOneClass.toMul.{u1} B (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (MonoidHom.monoidHomClass.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))))) f)) -> (Eq.{succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)))))))) (MonoidHom.comp.{u1, u1, u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (QuotientGroup.Quotient.group.{u1} A (CommGroup.toGroup.{u1} A _inst_3) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)) (Subgroup.normal_of_comm.{u1} A _inst_3 (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))))))) (QuotientGroup.homQuotientZPowOfHom.{u1} A B _inst_3 _inst_4 f n) (QuotientGroup.homQuotientZPowOfHom.{u1} B A _inst_4 _inst_3 g n)) (MonoidHom.id.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)))))))))
 Case conversion may be inaccurate. Consider using '#align quotient_group.hom_quotient_zpow_of_hom_comp_of_right_inverse QuotientGroup.homQuotientZPowOfHom_comp_of_rightInverseₓ'. -/
 @[simp, to_additive]
 theorem homQuotientZPowOfHom_comp_of_rightInverse (i : Function.RightInverse g f) :
@@ -971,7 +971,7 @@ def quotientQuotientEquivQuotientAux : (G ⧸ N) ⧸ M.map (mk' N) →* G ⧸ M
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M] (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N M) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) => (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M)) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (QuotientGroup.quotientQuotientEquivQuotientAux.{u1} G _inst_1 N nN M nM h) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasLiftT.mk.{succ u1, succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (CoeTCₓ.coe.{succ u1, succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)))) x)) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M)) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 M nM (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) x)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M] (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N M) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (fun (_x : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM)))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))) (QuotientGroup.quotientQuotientEquivQuotientAux.{u1} G _inst_1 N nN M nM h) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 M nM (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) x)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M] (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N M) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (fun (_x : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM)))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))) (QuotientGroup.quotientQuotientEquivQuotientAux.{u1} G _inst_1 N nN M nM h) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 M nM (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) x)
 Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_quotient_equiv_quotient_aux_coe QuotientGroup.quotientQuotientEquivQuotientAux_mkₓ'. -/
 @[simp, to_additive]
 theorem quotientQuotientEquivQuotientAux_mk (x : G ⧸ N) :
@@ -984,7 +984,7 @@ theorem quotientQuotientEquivQuotientAux_mk (x : G ⧸ N) :
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M] (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N M) (x : G), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) => (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M)) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (QuotientGroup.quotientQuotientEquivQuotientAux.{u1} G _inst_1 N nN M nM h) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasLiftT.mk.{succ u1, succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (CoeTCₓ.coe.{succ u1, succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) x))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 M))) x)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M] (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N M) (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.mk.{u1} G _inst_1 N x))) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (fun (_x : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM)))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))) (QuotientGroup.quotientQuotientEquivQuotientAux.{u1} G _inst_1 N nN M nM h) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.mk.{u1} G _inst_1 N x))) (QuotientGroup.mk.{u1} G _inst_1 M x)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M] (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N M) (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.mk.{u1} G _inst_1 N x))) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (fun (_x : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM)))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))) (QuotientGroup.quotientQuotientEquivQuotientAux.{u1} G _inst_1 N nN M nM h) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.mk.{u1} G _inst_1 N x))) (QuotientGroup.mk.{u1} G _inst_1 M x)
 Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_quotient_equiv_quotient_aux_coe_coe QuotientGroup.quotientQuotientEquivQuotientAux_mk_mkₓ'. -/
 @[to_additive]
 theorem quotientQuotientEquivQuotientAux_mk_mk (x : G) :
Diff
@@ -335,7 +335,7 @@ theorem lift_quot_mk {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) :
 
 /- warning: quotient_group.map -> QuotientGroup.map is a dubious translation:
 lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) -> (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3)))))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) -> (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3)))))
 but is expected to have type
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) -> (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3)))))
 Case conversion may be inaccurate. Consider using '#align quotient_group.map QuotientGroup.mapₓ'. -/
@@ -354,7 +354,7 @@ def map (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f) : G ⧸
 
 /- warning: quotient_group.map_coe -> QuotientGroup.map_mk is a dubious translation:
 lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (x : G), Eq.{succ u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M)) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_3 f h) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) x)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasLiftT.mk.{succ u2, succ u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (CoeTCₓ.coe.{succ u2, succ u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u2} H _inst_2 M))) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) f x))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (x : G), Eq.{succ u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M)) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_3 f h) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) x)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasLiftT.mk.{succ u2, succ u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (CoeTCₓ.coe.{succ u2, succ u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u2} H _inst_2 M))) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) f x))
 but is expected to have type
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.mk.{u1} G _inst_1 N x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3)))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_3 f h) (QuotientGroup.mk.{u1} G _inst_1 N x)) (QuotientGroup.mk.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) _inst_2 M (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) f x))
 Case conversion may be inaccurate. Consider using '#align quotient_group.map_coe QuotientGroup.map_mkₓ'. -/
@@ -367,7 +367,7 @@ theorem map_mk (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f)
 
 /- warning: quotient_group.map_mk' -> QuotientGroup.map_mk' is a dubious translation:
 lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (x : G), Eq.{succ u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M)) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_3 f h) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasLiftT.mk.{succ u2, succ u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (CoeTCₓ.coe.{succ u2, succ u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u2} H _inst_2 M))) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) f x))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (x : G), Eq.{succ u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M)) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_3 f h) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasLiftT.mk.{succ u2, succ u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (CoeTCₓ.coe.{succ u2, succ u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u2} H _inst_2 M))) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) f x))
 but is expected to have type
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (a : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) a) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3)))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_3 f h) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x)) (QuotientGroup.mk.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) _inst_2 M (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) f x))
 Case conversion may be inaccurate. Consider using '#align quotient_group.map_mk' QuotientGroup.map_mk'ₓ'. -/
@@ -380,7 +380,7 @@ theorem map_mk' (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f)
 
 /- warning: quotient_group.map_id_apply -> QuotientGroup.map_id_apply is a dubious translation:
 lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (h : optParam.{0} (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N)) (Eq.le.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1))) (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N) N (Subgroup.comap_id.{u1} G _inst_1 N))) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 N nN (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) x) x
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (h : optParam.{0} (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N)) (Eq.le.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1))) (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N) N (Subgroup.comap_id.{u1} G _inst_1 N))) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 N nN (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) x) x
 but is expected to have type
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (h : optParam.{0} (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N)) (Eq.le.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1)))) (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N) N (Subgroup.comap_id.{u1} G _inst_1 N))) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 N nN (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) x) x
 Case conversion may be inaccurate. Consider using '#align quotient_group.map_id_apply QuotientGroup.map_id_applyₓ'. -/
@@ -393,7 +393,7 @@ theorem map_id_apply (h : N ≤ Subgroup.comap (MonoidHom.id _) N := (Subgroup.c
 
 /- warning: quotient_group.map_id -> QuotientGroup.map_id is a dubious translation:
 lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (h : optParam.{0} (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N)) (Eq.le.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1))) (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N) N (Subgroup.comap_id.{u1} G _inst_1 N))), Eq.{succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 N nN (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) (MonoidHom.id.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (h : optParam.{0} (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N)) (Eq.le.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1))) (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N) N (Subgroup.comap_id.{u1} G _inst_1 N))), Eq.{succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 N nN (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) (MonoidHom.id.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))))
 but is expected to have type
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (h : optParam.{0} (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N)) (Eq.le.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1)))) (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N) N (Subgroup.comap_id.{u1} G _inst_1 N))), Eq.{succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 N nN (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) (MonoidHom.id.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))))
 Case conversion may be inaccurate. Consider using '#align quotient_group.map_id QuotientGroup.map_idₓ'. -/
@@ -406,7 +406,7 @@ theorem map_id (h : N ≤ Subgroup.comap (MonoidHom.id _) N := (Subgroup.comap_i
 
 /- warning: quotient_group.map_map -> QuotientGroup.map_map is a dubious translation:
 lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {I : Type.{u3}} [_inst_3 : Group.{u3} I] (M : Subgroup.{u2} H _inst_2) (O : Subgroup.{u3} I _inst_3) [_inst_4 : Subgroup.Normal.{u2} H _inst_2 M] [_inst_5 : Subgroup.Normal.{u3} I _inst_3 O] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : MonoidHom.{u2, u3} H I (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3)))) (hf : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (hg : LE.le.{u2} (Subgroup.{u2} H _inst_2) (Preorder.toLE.{u2} (Subgroup.{u2} H _inst_2) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} H _inst_2) (SetLike.partialOrder.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)))) M (Subgroup.comap.{u2, u3} H _inst_2 I _inst_3 g O)) (hgf : optParam.{0} (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u3} G _inst_1 I _inst_3 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) O)) (LE.le.trans.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u1, u3} G _inst_1 I _inst_3 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) O) hf (LE.le.trans_eq.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1))) (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f (Subgroup.comap.{u2, u3} H _inst_2 I _inst_3 g O)) (Subgroup.comap.{u1, u3} G _inst_1 I _inst_3 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) O) (Subgroup.comap_mono.{u1, u2} G _inst_1 H _inst_2 f M (Subgroup.comap.{u2, u3} H _inst_2 I _inst_3 g O) hg) (Subgroup.comap_comap.{u1, u2, u3} G _inst_1 H _inst_2 I _inst_3 O g f)))) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N), Eq.{succ u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) (fun (_x : MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) => (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) -> (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O)) (MonoidHom.hasCoeToFun.{u2, u3} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) (QuotientGroup.map.{u2, u3} H _inst_2 M _inst_4 I _inst_3 O _inst_5 g hg) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4))))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M)) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_4 f hf) x)) (coeFn.{max (succ u3) (succ u1), max (succ u1) (succ u3)} (MonoidHom.{u1, u3} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) (fun (_x : MonoidHom.{u1, u3} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O)) (MonoidHom.hasCoeToFun.{u1, u3} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) (QuotientGroup.map.{u1, u3} G _inst_1 N nN I _inst_3 O _inst_5 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) hgf) x)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {I : Type.{u3}} [_inst_3 : Group.{u3} I] (M : Subgroup.{u2} H _inst_2) (O : Subgroup.{u3} I _inst_3) [_inst_4 : Subgroup.Normal.{u2} H _inst_2 M] [_inst_5 : Subgroup.Normal.{u3} I _inst_3 O] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : MonoidHom.{u2, u3} H I (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3)))) (hf : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (hg : LE.le.{u2} (Subgroup.{u2} H _inst_2) (Preorder.toHasLe.{u2} (Subgroup.{u2} H _inst_2) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} H _inst_2) (SetLike.partialOrder.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)))) M (Subgroup.comap.{u2, u3} H _inst_2 I _inst_3 g O)) (hgf : optParam.{0} (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u3} G _inst_1 I _inst_3 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) O)) (LE.le.trans.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u1, u3} G _inst_1 I _inst_3 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) O) hf (LE.le.trans_eq.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1))) (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f (Subgroup.comap.{u2, u3} H _inst_2 I _inst_3 g O)) (Subgroup.comap.{u1, u3} G _inst_1 I _inst_3 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) O) (Subgroup.comap_mono.{u1, u2} G _inst_1 H _inst_2 f M (Subgroup.comap.{u2, u3} H _inst_2 I _inst_3 g O) hg) (Subgroup.comap_comap.{u1, u2, u3} G _inst_1 H _inst_2 I _inst_3 O g f)))) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N), Eq.{succ u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) (fun (_x : MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) => (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) -> (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O)) (MonoidHom.hasCoeToFun.{u2, u3} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) (QuotientGroup.map.{u2, u3} H _inst_2 M _inst_4 I _inst_3 O _inst_5 g hg) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4))))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M)) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_4 f hf) x)) (coeFn.{max (succ u3) (succ u1), max (succ u1) (succ u3)} (MonoidHom.{u1, u3} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) (fun (_x : MonoidHom.{u1, u3} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O)) (MonoidHom.hasCoeToFun.{u1, u3} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) (QuotientGroup.map.{u1, u3} G _inst_1 N nN I _inst_3 O _inst_5 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) hgf) x)
 but is expected to have type
   forall {G : Type.{u2}} [_inst_1 : Group.{u2} G] (N : Subgroup.{u2} G _inst_1) [nN : Subgroup.Normal.{u2} G _inst_1 N] {H : Type.{u3}} [_inst_2 : Group.{u3} H] {I : Type.{u1}} [_inst_3 : Group.{u1} I] (M : Subgroup.{u3} H _inst_2) (O : Subgroup.{u1} I _inst_3) [_inst_4 : Subgroup.Normal.{u3} H _inst_2 M] [_inst_5 : Subgroup.Normal.{u1} I _inst_3 O] (f : MonoidHom.{u2, u3} G H (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2)))) (g : MonoidHom.{u3, u1} H I (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3)))) (hf : LE.le.{u2} (Subgroup.{u2} G _inst_1) (Preorder.toLE.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1))))) N (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M)) (hg : LE.le.{u3} (Subgroup.{u3} H _inst_2) (Preorder.toLE.{u3} (Subgroup.{u3} H _inst_2) (PartialOrder.toPreorder.{u3} (Subgroup.{u3} H _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (Subgroup.{u3} H _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Subgroup.{u3} H _inst_2) (Subgroup.instCompleteLatticeSubgroup.{u3} H _inst_2))))) M (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O)) (hgf : optParam.{0} (LE.le.{u2} (Subgroup.{u2} G _inst_1) (Preorder.toLE.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1))))) N (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O)) (LE.le.trans.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1)))) N (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O) hf (LE.le.trans_eq.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1)))) (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O)) (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O) (Subgroup.comap_mono.{u3, u2} G _inst_1 H _inst_2 f M (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O) hg) (Subgroup.comap_comap.{u2, u3, u1} G _inst_1 H _inst_2 I _inst_3 O g f)))) (x : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) => HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (fun (a : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) a) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN))))) (MulOneClass.toMul.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (MonoidHom.monoidHomClass.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))))) (QuotientGroup.map.{u2, u3} G _inst_1 N nN H _inst_2 M _inst_4 f hf) x)) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (fun (_x : HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) => HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (MulOneClass.toMul.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5)))) (MonoidHom.monoidHomClass.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))))) (QuotientGroup.map.{u3, u1} H _inst_2 M _inst_4 I _inst_3 O _inst_5 g hg) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN))))) (MulOneClass.toMul.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (MonoidHom.monoidHomClass.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))))) (QuotientGroup.map.{u2, u3} G _inst_1 N nN H _inst_2 M _inst_4 f hf) x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5)))) (MonoidHom.monoidHomClass.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))))) (QuotientGroup.map.{u2, u1} G _inst_1 N nN I _inst_3 O _inst_5 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) hgf) x)
 Case conversion may be inaccurate. Consider using '#align quotient_group.map_map QuotientGroup.map_mapₓ'. -/
@@ -424,7 +424,7 @@ theorem map_map {I : Type _} [Group I] (M : Subgroup H) (O : Subgroup I) [M.Norm
 
 /- warning: quotient_group.map_comp_map -> QuotientGroup.map_comp_map is a dubious translation:
 lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {I : Type.{u3}} [_inst_3 : Group.{u3} I] (M : Subgroup.{u2} H _inst_2) (O : Subgroup.{u3} I _inst_3) [_inst_4 : Subgroup.Normal.{u2} H _inst_2 M] [_inst_5 : Subgroup.Normal.{u3} I _inst_3 O] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : MonoidHom.{u2, u3} H I (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3)))) (hf : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (hg : LE.le.{u2} (Subgroup.{u2} H _inst_2) (Preorder.toLE.{u2} (Subgroup.{u2} H _inst_2) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} H _inst_2) (SetLike.partialOrder.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)))) M (Subgroup.comap.{u2, u3} H _inst_2 I _inst_3 g O)) (hgf : optParam.{0} (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u3} G _inst_1 I _inst_3 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) O)) (LE.le.trans.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u1, u3} G _inst_1 I _inst_3 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) O) hf (LE.le.trans_eq.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1))) (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f (Subgroup.comap.{u2, u3} H _inst_2 I _inst_3 g O)) (Subgroup.comap.{u1, u3} G _inst_1 I _inst_3 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) O) (Subgroup.comap_mono.{u1, u2} G _inst_1 H _inst_2 f M (Subgroup.comap.{u2, u3} H _inst_2 I _inst_3 g O) hg) (Subgroup.comap_comap.{u1, u2, u3} G _inst_1 H _inst_2 I _inst_3 O g f)))), Eq.{max (succ u3) (succ u1)} (MonoidHom.{u1, u3} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) (MonoidHom.comp.{u1, u2, u3} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5)))) (QuotientGroup.map.{u2, u3} H _inst_2 M _inst_4 I _inst_3 O _inst_5 g hg) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_4 f hf)) (QuotientGroup.map.{u1, u3} G _inst_1 N nN I _inst_3 O _inst_5 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) hgf)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {I : Type.{u3}} [_inst_3 : Group.{u3} I] (M : Subgroup.{u2} H _inst_2) (O : Subgroup.{u3} I _inst_3) [_inst_4 : Subgroup.Normal.{u2} H _inst_2 M] [_inst_5 : Subgroup.Normal.{u3} I _inst_3 O] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : MonoidHom.{u2, u3} H I (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3)))) (hf : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (hg : LE.le.{u2} (Subgroup.{u2} H _inst_2) (Preorder.toHasLe.{u2} (Subgroup.{u2} H _inst_2) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} H _inst_2) (SetLike.partialOrder.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)))) M (Subgroup.comap.{u2, u3} H _inst_2 I _inst_3 g O)) (hgf : optParam.{0} (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u3} G _inst_1 I _inst_3 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) O)) (LE.le.trans.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u1, u3} G _inst_1 I _inst_3 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) O) hf (LE.le.trans_eq.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1))) (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f (Subgroup.comap.{u2, u3} H _inst_2 I _inst_3 g O)) (Subgroup.comap.{u1, u3} G _inst_1 I _inst_3 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) O) (Subgroup.comap_mono.{u1, u2} G _inst_1 H _inst_2 f M (Subgroup.comap.{u2, u3} H _inst_2 I _inst_3 g O) hg) (Subgroup.comap_comap.{u1, u2, u3} G _inst_1 H _inst_2 I _inst_3 O g f)))), Eq.{max (succ u3) (succ u1)} (MonoidHom.{u1, u3} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) (MonoidHom.comp.{u1, u2, u3} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5)))) (QuotientGroup.map.{u2, u3} H _inst_2 M _inst_4 I _inst_3 O _inst_5 g hg) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_4 f hf)) (QuotientGroup.map.{u1, u3} G _inst_1 N nN I _inst_3 O _inst_5 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) hgf)
 but is expected to have type
   forall {G : Type.{u2}} [_inst_1 : Group.{u2} G] (N : Subgroup.{u2} G _inst_1) [nN : Subgroup.Normal.{u2} G _inst_1 N] {H : Type.{u3}} [_inst_2 : Group.{u3} H] {I : Type.{u1}} [_inst_3 : Group.{u1} I] (M : Subgroup.{u3} H _inst_2) (O : Subgroup.{u1} I _inst_3) [_inst_4 : Subgroup.Normal.{u3} H _inst_2 M] [_inst_5 : Subgroup.Normal.{u1} I _inst_3 O] (f : MonoidHom.{u2, u3} G H (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2)))) (g : MonoidHom.{u3, u1} H I (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3)))) (hf : LE.le.{u2} (Subgroup.{u2} G _inst_1) (Preorder.toLE.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1))))) N (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M)) (hg : LE.le.{u3} (Subgroup.{u3} H _inst_2) (Preorder.toLE.{u3} (Subgroup.{u3} H _inst_2) (PartialOrder.toPreorder.{u3} (Subgroup.{u3} H _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (Subgroup.{u3} H _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Subgroup.{u3} H _inst_2) (Subgroup.instCompleteLatticeSubgroup.{u3} H _inst_2))))) M (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O)) (hgf : optParam.{0} (LE.le.{u2} (Subgroup.{u2} G _inst_1) (Preorder.toLE.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1))))) N (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O)) (LE.le.trans.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1)))) N (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O) hf (LE.le.trans_eq.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1)))) (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O)) (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O) (Subgroup.comap_mono.{u3, u2} G _inst_1 H _inst_2 f M (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O) hg) (Subgroup.comap_comap.{u2, u3, u1} G _inst_1 H _inst_2 I _inst_3 O g f)))), Eq.{max (succ u2) (succ u1)} (MonoidHom.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (MonoidHom.comp.{u2, u3, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5)))) (QuotientGroup.map.{u3, u1} H _inst_2 M _inst_4 I _inst_3 O _inst_5 g hg) (QuotientGroup.map.{u2, u3} G _inst_1 N nN H _inst_2 M _inst_4 f hf)) (QuotientGroup.map.{u2, u1} G _inst_1 N nN I _inst_3 O _inst_5 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) hgf)
 Case conversion may be inaccurate. Consider using '#align quotient_group.map_comp_map QuotientGroup.map_comp_mapₓ'. -/
@@ -727,7 +727,7 @@ theorem quotientMulEquivOfEq_mk {M N : Subgroup G} [M.Normal] [N.Normal] (h : M
 
 /- warning: quotient_group.quotient_map_subgroup_of_of_le -> QuotientGroup.quotientMapSubgroupOfOfLe is a dubious translation:
 lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {A' : Subgroup.{u1} G _inst_1} {A : Subgroup.{u1} G _inst_1} {B' : Subgroup.{u1} G _inst_1} {B : Subgroup.{u1} G _inst_1} [hAN : Subgroup.Normal.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)] [hBN : Subgroup.Normal.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)], (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) A' B') -> (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) A B) -> (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN)))))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {A' : Subgroup.{u1} G _inst_1} {A : Subgroup.{u1} G _inst_1} {B' : Subgroup.{u1} G _inst_1} {B : Subgroup.{u1} G _inst_1} [hAN : Subgroup.Normal.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)] [hBN : Subgroup.Normal.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)], (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) A' B') -> (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) A B) -> (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN)))))
 but is expected to have type
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {A' : Subgroup.{u1} G _inst_1} {A : Subgroup.{u1} G _inst_1} {B' : Subgroup.{u1} G _inst_1} {B : Subgroup.{u1} G _inst_1} [hAN : Subgroup.Normal.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)] [hBN : Subgroup.Normal.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)], (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) A' B') -> (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) A B) -> (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN)))))
 Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_map_subgroup_of_of_le QuotientGroup.quotientMapSubgroupOfOfLeₓ'. -/
@@ -744,7 +744,7 @@ def quotientMapSubgroupOfOfLe {A' A B' B : Subgroup G} [hAN : (A'.subgroupOf A).
 
 /- warning: quotient_group.quotient_map_subgroup_of_of_le_coe -> QuotientGroup.quotientMapSubgroupOfOfLe_mk is a dubious translation:
 lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {A' : Subgroup.{u1} G _inst_1} {A : Subgroup.{u1} G _inst_1} {B' : Subgroup.{u1} G _inst_1} {B : Subgroup.{u1} G _inst_1} [hAN : Subgroup.Normal.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)] [hBN : Subgroup.Normal.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)] (h' : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) A' B') (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) A B) (x : coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) => (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) -> (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B))) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (QuotientGroup.quotientMapSubgroupOfOfLe.{u1} G _inst_1 A' A B' B hAN hBN h' h) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)))) x)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)))) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)))) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B))))) (fun (_x : MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)))) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B))))) => (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) -> (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B)) (MonoidHom.hasCoeToFun.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)))) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B))))) (Subgroup.inclusion.{u1} G _inst_1 A B h) x))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {A' : Subgroup.{u1} G _inst_1} {A : Subgroup.{u1} G _inst_1} {B' : Subgroup.{u1} G _inst_1} {B : Subgroup.{u1} G _inst_1} [hAN : Subgroup.Normal.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)] [hBN : Subgroup.Normal.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)] (h' : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) A' B') (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) A B) (x : coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) => (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) -> (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B))) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (QuotientGroup.quotientMapSubgroupOfOfLe.{u1} G _inst_1 A' A B' B hAN hBN h' h) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)))) x)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)))) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)))) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B))))) (fun (_x : MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)))) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B))))) => (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) -> (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B)) (MonoidHom.hasCoeToFun.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)))) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B))))) (Subgroup.inclusion.{u1} G _inst_1 A B h) x))
 but is expected to have type
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {A' : Subgroup.{u1} G _inst_1} {A : Subgroup.{u1} G _inst_1} {B' : Subgroup.{u1} G _inst_1} {B : Subgroup.{u1} G _inst_1} [hAN : Subgroup.Normal.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)] [hBN : Subgroup.Normal.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)] (h' : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) A' B') (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) A B) (x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) => HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.mk.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (fun (_x : HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) => HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))))) (QuotientGroup.quotientMapSubgroupOfOfLe.{u1} G _inst_1 A' A B' B hAN hBN h' h) (QuotientGroup.mk.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) x)) (QuotientGroup.mk.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) => Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) x) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (fun (_x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) => Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A))) (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B)) (MonoidHom.monoidHomClass.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))))) (Subgroup.inclusion.{u1} G _inst_1 A B h) x))
 Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_map_subgroup_of_of_le_coe QuotientGroup.quotientMapSubgroupOfOfLe_mkₓ'. -/
@@ -951,7 +951,7 @@ variable (h : N ≤ M)
 
 /- warning: quotient_group.quotient_quotient_equiv_quotient_aux -> QuotientGroup.quotientQuotientEquivQuotientAux is a dubious translation:
 lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M], (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N M) -> (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M], (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N M) -> (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))))
 but is expected to have type
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M], (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N M) -> (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))))
 Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_quotient_equiv_quotient_aux QuotientGroup.quotientQuotientEquivQuotientAuxₓ'. -/
@@ -969,7 +969,7 @@ def quotientQuotientEquivQuotientAux : (G ⧸ N) ⧸ M.map (mk' N) →* G ⧸ M
 
 /- warning: quotient_group.quotient_quotient_equiv_quotient_aux_coe -> QuotientGroup.quotientQuotientEquivQuotientAux_mk is a dubious translation:
 lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M] (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N M) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) => (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M)) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (QuotientGroup.quotientQuotientEquivQuotientAux.{u1} G _inst_1 N nN M nM h) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasLiftT.mk.{succ u1, succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (CoeTCₓ.coe.{succ u1, succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)))) x)) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M)) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 M nM (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) x)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M] (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N M) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) => (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M)) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (QuotientGroup.quotientQuotientEquivQuotientAux.{u1} G _inst_1 N nN M nM h) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasLiftT.mk.{succ u1, succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (CoeTCₓ.coe.{succ u1, succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)))) x)) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M)) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 M nM (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) x)
 but is expected to have type
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M] (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N M) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (fun (_x : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM)))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))) (QuotientGroup.quotientQuotientEquivQuotientAux.{u1} G _inst_1 N nN M nM h) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 M nM (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) x)
 Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_quotient_equiv_quotient_aux_coe QuotientGroup.quotientQuotientEquivQuotientAux_mkₓ'. -/
@@ -982,7 +982,7 @@ theorem quotientQuotientEquivQuotientAux_mk (x : G ⧸ N) :
 
 /- warning: quotient_group.quotient_quotient_equiv_quotient_aux_coe_coe -> QuotientGroup.quotientQuotientEquivQuotientAux_mk_mk is a dubious translation:
 lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M] (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N M) (x : G), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) => (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M)) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (QuotientGroup.quotientQuotientEquivQuotientAux.{u1} G _inst_1 N nN M nM h) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasLiftT.mk.{succ u1, succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (CoeTCₓ.coe.{succ u1, succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) x))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 M))) x)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M] (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N M) (x : G), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) => (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M)) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (QuotientGroup.quotientQuotientEquivQuotientAux.{u1} G _inst_1 N nN M nM h) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasLiftT.mk.{succ u1, succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (CoeTCₓ.coe.{succ u1, succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) x))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 M))) x)
 but is expected to have type
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M] (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N M) (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.mk.{u1} G _inst_1 N x))) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (fun (_x : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM)))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))) (QuotientGroup.quotientQuotientEquivQuotientAux.{u1} G _inst_1 N nN M nM h) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.mk.{u1} G _inst_1 N x))) (QuotientGroup.mk.{u1} G _inst_1 M x)
 Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_quotient_equiv_quotient_aux_coe_coe QuotientGroup.quotientQuotientEquivQuotientAux_mk_mkₓ'. -/
@@ -995,7 +995,7 @@ theorem quotientQuotientEquivQuotientAux_mk_mk (x : G) :
 
 /- warning: quotient_group.quotient_quotient_equiv_quotient -> QuotientGroup.quotientQuotientEquivQuotient is a dubious translation:
 lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M], (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N M) -> (MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM)))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M], (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N M) -> (MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM)))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))
 but is expected to have type
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M], (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N M) -> (MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM)))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))
 Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_quotient_equiv_quotient QuotientGroup.quotientQuotientEquivQuotientₓ'. -/
@@ -1079,7 +1079,7 @@ variable (f : F →* G) (g : G →* H)
 
 /- warning: group.fintype_of_ker_le_range -> Group.fintypeOfKerLeRange is a dubious translation:
 lean 3 declaration is
-  forall {F : Type.{u1}} {G : Type.{u1}} {H : Type.{u1}} [_inst_1 : Group.{u1} F] [_inst_2 : Group.{u1} G] [_inst_3 : Group.{u1} H] [_inst_4 : Fintype.{u1} F] [_inst_5 : Fintype.{u1} H] (f : MonoidHom.{u1, u1} F G (Monoid.toMulOneClass.{u1} F (DivInvMonoid.toMonoid.{u1} F (Group.toDivInvMonoid.{u1} F _inst_1))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (g : MonoidHom.{u1, u1} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u1} H (DivInvMonoid.toMonoid.{u1} H (Group.toDivInvMonoid.{u1} H _inst_3)))), (LE.le.{u1} (Subgroup.{u1} G _inst_2) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_2) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_2) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) (MonoidHom.ker.{u1, u1} G _inst_2 H (Monoid.toMulOneClass.{u1} H (DivInvMonoid.toMonoid.{u1} H (Group.toDivInvMonoid.{u1} H _inst_3))) g) (MonoidHom.range.{u1, u1} F _inst_1 G _inst_2 f)) -> (Fintype.{u1} G)
+  forall {F : Type.{u1}} {G : Type.{u1}} {H : Type.{u1}} [_inst_1 : Group.{u1} F] [_inst_2 : Group.{u1} G] [_inst_3 : Group.{u1} H] [_inst_4 : Fintype.{u1} F] [_inst_5 : Fintype.{u1} H] (f : MonoidHom.{u1, u1} F G (Monoid.toMulOneClass.{u1} F (DivInvMonoid.toMonoid.{u1} F (Group.toDivInvMonoid.{u1} F _inst_1))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (g : MonoidHom.{u1, u1} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u1} H (DivInvMonoid.toMonoid.{u1} H (Group.toDivInvMonoid.{u1} H _inst_3)))), (LE.le.{u1} (Subgroup.{u1} G _inst_2) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_2) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_2) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) (MonoidHom.ker.{u1, u1} G _inst_2 H (Monoid.toMulOneClass.{u1} H (DivInvMonoid.toMonoid.{u1} H (Group.toDivInvMonoid.{u1} H _inst_3))) g) (MonoidHom.range.{u1, u1} F _inst_1 G _inst_2 f)) -> (Fintype.{u1} G)
 but is expected to have type
   forall {F : Type.{u1}} {G : Type.{u1}} {H : Type.{u1}} [_inst_1 : Group.{u1} F] [_inst_2 : Group.{u1} G] [_inst_3 : Group.{u1} H] [_inst_4 : Fintype.{u1} F] [_inst_5 : Fintype.{u1} H] (f : MonoidHom.{u1, u1} F G (Monoid.toMulOneClass.{u1} F (DivInvMonoid.toMonoid.{u1} F (Group.toDivInvMonoid.{u1} F _inst_1))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (g : MonoidHom.{u1, u1} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u1} H (DivInvMonoid.toMonoid.{u1} H (Group.toDivInvMonoid.{u1} H _inst_3)))), (LE.le.{u1} (Subgroup.{u1} G _inst_2) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_2) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_2) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_2))))) (MonoidHom.ker.{u1, u1} G _inst_2 H (Monoid.toMulOneClass.{u1} H (DivInvMonoid.toMonoid.{u1} H (Group.toDivInvMonoid.{u1} H _inst_3))) g) (MonoidHom.range.{u1, u1} F _inst_1 G _inst_2 f)) -> (Fintype.{u1} G)
 Case conversion may be inaccurate. Consider using '#align group.fintype_of_ker_le_range Group.fintypeOfKerLeRangeₓ'. -/
Diff
@@ -99,7 +99,7 @@ def mk' : G →* G ⧸ N :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N], Eq.{succ u1} ((fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (QuotientGroup.mk'.{u1} G _inst_1 N nN)) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N], Eq.{succ u1} (forall (a : G), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) a) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN)) (QuotientGroup.mk.{u1} G _inst_1 N)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N], Eq.{succ u1} (forall (a : G), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) a) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN)) (QuotientGroup.mk.{u1} G _inst_1 N)
 Case conversion may be inaccurate. Consider using '#align quotient_group.coe_mk' QuotientGroup.coe_mk'ₓ'. -/
 @[simp, to_additive]
 theorem coe_mk' : (mk' N : G → G ⧸ N) = coe :=
@@ -111,7 +111,7 @@ theorem coe_mk' : (mk' N : G → G ⧸ N) = coe :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (x : G), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) x)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x) (QuotientGroup.mk.{u1} G _inst_1 N x)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x) (QuotientGroup.mk.{u1} G _inst_1 N x)
 Case conversion may be inaccurate. Consider using '#align quotient_group.mk'_apply QuotientGroup.mk'_applyₓ'. -/
 @[simp, to_additive]
 theorem mk'_apply (x : G) : mk' N x = x :=
@@ -123,7 +123,7 @@ theorem mk'_apply (x : G) : mk' N x = x :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N], Function.Surjective.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N], Function.Surjective.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N], Function.Surjective.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN))
 Case conversion may be inaccurate. Consider using '#align quotient_group.mk'_surjective QuotientGroup.mk'_surjectiveₓ'. -/
 @[to_additive]
 theorem mk'_surjective : Surjective <| mk' N :=
@@ -135,7 +135,7 @@ theorem mk'_surjective : Surjective <| mk' N :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {x : G} {y : G}, Iff (Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) y)) (Exists.{succ u1} G (fun (z : G) => Exists.{0} (Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) z N) (fun (H : Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) z N) => Eq.{succ u1} G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) x z) y)))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {x : G} {y : G}, Iff (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) y)) (Exists.{succ u1} G (fun (z : G) => And (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) z N) (Eq.{succ u1} G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) x z) y)))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {x : G} {y : G}, Iff (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) y)) (Exists.{succ u1} G (fun (z : G) => And (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) z N) (Eq.{succ u1} G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) x z) y)))
 Case conversion may be inaccurate. Consider using '#align quotient_group.mk'_eq_mk' QuotientGroup.mk'_eq_mk'ₓ'. -/
 @[to_additive]
 theorem mk'_eq_mk' {x y : G} : mk' N x = mk' N y ↔ ∃ z ∈ N, x * z = y :=
@@ -279,7 +279,7 @@ theorem mk_zpow (a : G) (n : ℤ) : ((a ^ n : G) : Q ) = a ^ n :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), (forall (x : G), (Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) x N) -> (Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ x) (OfNat.ofNat.{u2} H 1 (OfNat.mk.{u2} H 1 (One.one.{u2} H (MulOneClass.toHasOne.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))))))) -> (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), (forall (x : G), (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (Group.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) _inst_2)))))))) -> (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), (forall (x : G), (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (Group.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) _inst_2)))))))) -> (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))
 Case conversion may be inaccurate. Consider using '#align quotient_group.lift QuotientGroup.liftₓ'. -/
 /-- A group homomorphism `φ : G →* H` with `N ⊆ ker(φ)` descends (i.e. `lift`s) to a
 group homomorphism `G/N →* H`. -/
@@ -300,7 +300,7 @@ def lift (φ : G →* H) (HN : ∀ x ∈ N, φ x = 1) : Q →* H :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) x N) -> (Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ x) (OfNat.ofNat.{u2} H 1 (OfNat.mk.{u2} H 1 (One.one.{u2} H (MulOneClass.toHasOne.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))))))) (g : G), Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> H) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) g)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ g)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (Group.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) _inst_2)))))))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) (QuotientGroup.mk.{u1} G _inst_1 N g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (QuotientGroup.mk.{u1} G _inst_1 N g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (Group.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) _inst_2)))))))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) (QuotientGroup.mk.{u1} G _inst_1 N g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (QuotientGroup.mk.{u1} G _inst_1 N g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
 Case conversion may be inaccurate. Consider using '#align quotient_group.lift_mk QuotientGroup.lift_mkₓ'. -/
 @[simp, to_additive]
 theorem lift_mk {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N φ HN (g : Q ) = φ g :=
@@ -312,7 +312,7 @@ theorem lift_mk {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N φ
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) x N) -> (Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ x) (OfNat.ofNat.{u2} H 1 (OfNat.mk.{u2} H 1 (One.one.{u2} H (MulOneClass.toHasOne.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))))))) (g : G), Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> H) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (QuotientGroup.mk.{u1} G _inst_1 N g)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ g)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (Group.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) _inst_2)))))))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) (QuotientGroup.mk.{u1} G _inst_1 N g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (QuotientGroup.mk.{u1} G _inst_1 N g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (Group.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) _inst_2)))))))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) (QuotientGroup.mk.{u1} G _inst_1 N g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (QuotientGroup.mk.{u1} G _inst_1 N g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
 Case conversion may be inaccurate. Consider using '#align quotient_group.lift_mk' QuotientGroup.lift_mk'ₓ'. -/
 @[simp, to_additive]
 theorem lift_mk' {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N φ HN (mk g : Q ) = φ g :=
@@ -324,7 +324,7 @@ theorem lift_mk' {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N 
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) x N) -> (Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ x) (OfNat.ofNat.{u2} H 1 (OfNat.mk.{u2} H 1 (One.one.{u2} H (MulOneClass.toHasOne.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))))))) (g : G), Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> H) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (Quot.mk.{succ u1} G (Setoid.r.{succ u1} G (QuotientGroup.leftRel.{u1} G _inst_1 N)) g)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ g)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (Group.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) _inst_2)))))))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) (Quot.mk.{succ u1} G (Setoid.r.{succ u1} G (QuotientGroup.leftRel.{u1} G _inst_1 N)) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (Quot.mk.{succ u1} G (Setoid.r.{succ u1} G (QuotientGroup.leftRel.{u1} G _inst_1 N)) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) (Group.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) _inst_2)))))))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) (Quot.mk.{succ u1} G (Setoid.r.{succ u1} G (QuotientGroup.leftRel.{u1} G _inst_1 N)) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (Quot.mk.{succ u1} G (Setoid.r.{succ u1} G (QuotientGroup.leftRel.{u1} G _inst_1 N)) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
 Case conversion may be inaccurate. Consider using '#align quotient_group.lift_quot_mk QuotientGroup.lift_quot_mkₓ'. -/
 @[simp, to_additive]
 theorem lift_quot_mk {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) :
@@ -356,7 +356,7 @@ def map (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f) : G ⧸
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (x : G), Eq.{succ u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M)) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_3 f h) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) x)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasLiftT.mk.{succ u2, succ u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (CoeTCₓ.coe.{succ u2, succ u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u2} H _inst_2 M))) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) f x))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.mk.{u1} G _inst_1 N x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3)))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_3 f h) (QuotientGroup.mk.{u1} G _inst_1 N x)) (QuotientGroup.mk.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) _inst_2 M (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) f x))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.mk.{u1} G _inst_1 N x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3)))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_3 f h) (QuotientGroup.mk.{u1} G _inst_1 N x)) (QuotientGroup.mk.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) _inst_2 M (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) f x))
 Case conversion may be inaccurate. Consider using '#align quotient_group.map_coe QuotientGroup.map_mkₓ'. -/
 @[simp, to_additive]
 theorem map_mk (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f) (x : G) :
@@ -369,7 +369,7 @@ theorem map_mk (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f)
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (x : G), Eq.{succ u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M)) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_3 f h) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasLiftT.mk.{succ u2, succ u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (CoeTCₓ.coe.{succ u2, succ u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u2} H _inst_2 M))) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) f x))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (a : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) a) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3)))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_3 f h) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x)) (QuotientGroup.mk.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) _inst_2 M (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) f x))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (a : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) a) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3)))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_3 f h) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x)) (QuotientGroup.mk.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) x) _inst_2 M (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) f x))
 Case conversion may be inaccurate. Consider using '#align quotient_group.map_mk' QuotientGroup.map_mk'ₓ'. -/
 @[to_additive]
 theorem map_mk' (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f) (x : G) :
@@ -382,7 +382,7 @@ theorem map_mk' (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f)
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (h : optParam.{0} (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N)) (Eq.le.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1))) (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N) N (Subgroup.comap_id.{u1} G _inst_1 N))) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 N nN (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) x) x
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (h : optParam.{0} (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N)) (Eq.le.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1)))) (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N) N (Subgroup.comap_id.{u1} G _inst_1 N))) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 N nN (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) x) x
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (h : optParam.{0} (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N)) (Eq.le.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1)))) (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N) N (Subgroup.comap_id.{u1} G _inst_1 N))) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 N nN (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) x) x
 Case conversion may be inaccurate. Consider using '#align quotient_group.map_id_apply QuotientGroup.map_id_applyₓ'. -/
 @[to_additive]
 theorem map_id_apply (h : N ≤ Subgroup.comap (MonoidHom.id _) N := (Subgroup.comap_id N).le) (x) :
@@ -408,7 +408,7 @@ theorem map_id (h : N ≤ Subgroup.comap (MonoidHom.id _) N := (Subgroup.comap_i
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {I : Type.{u3}} [_inst_3 : Group.{u3} I] (M : Subgroup.{u2} H _inst_2) (O : Subgroup.{u3} I _inst_3) [_inst_4 : Subgroup.Normal.{u2} H _inst_2 M] [_inst_5 : Subgroup.Normal.{u3} I _inst_3 O] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : MonoidHom.{u2, u3} H I (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3)))) (hf : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (hg : LE.le.{u2} (Subgroup.{u2} H _inst_2) (Preorder.toLE.{u2} (Subgroup.{u2} H _inst_2) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} H _inst_2) (SetLike.partialOrder.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)))) M (Subgroup.comap.{u2, u3} H _inst_2 I _inst_3 g O)) (hgf : optParam.{0} (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u3} G _inst_1 I _inst_3 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) O)) (LE.le.trans.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u1, u3} G _inst_1 I _inst_3 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) O) hf (LE.le.trans_eq.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1))) (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f (Subgroup.comap.{u2, u3} H _inst_2 I _inst_3 g O)) (Subgroup.comap.{u1, u3} G _inst_1 I _inst_3 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) O) (Subgroup.comap_mono.{u1, u2} G _inst_1 H _inst_2 f M (Subgroup.comap.{u2, u3} H _inst_2 I _inst_3 g O) hg) (Subgroup.comap_comap.{u1, u2, u3} G _inst_1 H _inst_2 I _inst_3 O g f)))) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N), Eq.{succ u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) (fun (_x : MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) => (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) -> (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O)) (MonoidHom.hasCoeToFun.{u2, u3} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) (QuotientGroup.map.{u2, u3} H _inst_2 M _inst_4 I _inst_3 O _inst_5 g hg) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4))))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M)) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_4 f hf) x)) (coeFn.{max (succ u3) (succ u1), max (succ u1) (succ u3)} (MonoidHom.{u1, u3} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) (fun (_x : MonoidHom.{u1, u3} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O)) (MonoidHom.hasCoeToFun.{u1, u3} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) (QuotientGroup.map.{u1, u3} G _inst_1 N nN I _inst_3 O _inst_5 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) hgf) x)
 but is expected to have type
-  forall {G : Type.{u2}} [_inst_1 : Group.{u2} G] (N : Subgroup.{u2} G _inst_1) [nN : Subgroup.Normal.{u2} G _inst_1 N] {H : Type.{u3}} [_inst_2 : Group.{u3} H] {I : Type.{u1}} [_inst_3 : Group.{u1} I] (M : Subgroup.{u3} H _inst_2) (O : Subgroup.{u1} I _inst_3) [_inst_4 : Subgroup.Normal.{u3} H _inst_2 M] [_inst_5 : Subgroup.Normal.{u1} I _inst_3 O] (f : MonoidHom.{u2, u3} G H (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2)))) (g : MonoidHom.{u3, u1} H I (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3)))) (hf : LE.le.{u2} (Subgroup.{u2} G _inst_1) (Preorder.toLE.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1))))) N (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M)) (hg : LE.le.{u3} (Subgroup.{u3} H _inst_2) (Preorder.toLE.{u3} (Subgroup.{u3} H _inst_2) (PartialOrder.toPreorder.{u3} (Subgroup.{u3} H _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (Subgroup.{u3} H _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Subgroup.{u3} H _inst_2) (Subgroup.instCompleteLatticeSubgroup.{u3} H _inst_2))))) M (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O)) (hgf : optParam.{0} (LE.le.{u2} (Subgroup.{u2} G _inst_1) (Preorder.toLE.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1))))) N (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O)) (LE.le.trans.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1)))) N (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O) hf (LE.le.trans_eq.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1)))) (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O)) (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O) (Subgroup.comap_mono.{u3, u2} G _inst_1 H _inst_2 f M (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O) hg) (Subgroup.comap_comap.{u2, u3, u1} G _inst_1 H _inst_2 I _inst_3 O g f)))) (x : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) => HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (fun (a : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) a) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN))))) (MulOneClass.toMul.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (MonoidHom.monoidHomClass.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))))) (QuotientGroup.map.{u2, u3} G _inst_1 N nN H _inst_2 M _inst_4 f hf) x)) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (fun (_x : HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) => HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (MulOneClass.toMul.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5)))) (MonoidHom.monoidHomClass.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))))) (QuotientGroup.map.{u3, u1} H _inst_2 M _inst_4 I _inst_3 O _inst_5 g hg) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN))))) (MulOneClass.toMul.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (MonoidHom.monoidHomClass.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))))) (QuotientGroup.map.{u2, u3} G _inst_1 N nN H _inst_2 M _inst_4 f hf) x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5)))) (MonoidHom.monoidHomClass.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))))) (QuotientGroup.map.{u2, u1} G _inst_1 N nN I _inst_3 O _inst_5 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) hgf) x)
+  forall {G : Type.{u2}} [_inst_1 : Group.{u2} G] (N : Subgroup.{u2} G _inst_1) [nN : Subgroup.Normal.{u2} G _inst_1 N] {H : Type.{u3}} [_inst_2 : Group.{u3} H] {I : Type.{u1}} [_inst_3 : Group.{u1} I] (M : Subgroup.{u3} H _inst_2) (O : Subgroup.{u1} I _inst_3) [_inst_4 : Subgroup.Normal.{u3} H _inst_2 M] [_inst_5 : Subgroup.Normal.{u1} I _inst_3 O] (f : MonoidHom.{u2, u3} G H (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2)))) (g : MonoidHom.{u3, u1} H I (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3)))) (hf : LE.le.{u2} (Subgroup.{u2} G _inst_1) (Preorder.toLE.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1))))) N (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M)) (hg : LE.le.{u3} (Subgroup.{u3} H _inst_2) (Preorder.toLE.{u3} (Subgroup.{u3} H _inst_2) (PartialOrder.toPreorder.{u3} (Subgroup.{u3} H _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (Subgroup.{u3} H _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Subgroup.{u3} H _inst_2) (Subgroup.instCompleteLatticeSubgroup.{u3} H _inst_2))))) M (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O)) (hgf : optParam.{0} (LE.le.{u2} (Subgroup.{u2} G _inst_1) (Preorder.toLE.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1))))) N (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O)) (LE.le.trans.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1)))) N (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O) hf (LE.le.trans_eq.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1)))) (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O)) (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O) (Subgroup.comap_mono.{u3, u2} G _inst_1 H _inst_2 f M (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O) hg) (Subgroup.comap_comap.{u2, u3, u1} G _inst_1 H _inst_2 I _inst_3 O g f)))) (x : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) => HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (fun (a : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) a) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN))))) (MulOneClass.toMul.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (MonoidHom.monoidHomClass.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))))) (QuotientGroup.map.{u2, u3} G _inst_1 N nN H _inst_2 M _inst_4 f hf) x)) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (fun (_x : HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) => HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (MulOneClass.toMul.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5)))) (MonoidHom.monoidHomClass.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))))) (QuotientGroup.map.{u3, u1} H _inst_2 M _inst_4 I _inst_3 O _inst_5 g hg) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN))))) (MulOneClass.toMul.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (MonoidHom.monoidHomClass.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))))) (QuotientGroup.map.{u2, u3} G _inst_1 N nN H _inst_2 M _inst_4 f hf) x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5)))) (MonoidHom.monoidHomClass.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))))) (QuotientGroup.map.{u2, u1} G _inst_1 N nN I _inst_3 O _inst_5 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) hgf) x)
 Case conversion may be inaccurate. Consider using '#align quotient_group.map_map QuotientGroup.map_mapₓ'. -/
 @[simp, to_additive]
 theorem map_map {I : Type _} [Group I] (M : Subgroup H) (O : Subgroup I) [M.Normal] [O.Normal]
@@ -489,7 +489,7 @@ theorem congr_mk (e : G ≃* H) (he : G'.map ↑e = H') (x) : congr G' H' e he (
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (G' : Subgroup.{u1} G _inst_1) (H' : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] [_inst_4 : Subgroup.Normal.{u2} H _inst_2 H'] (e : MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (he : Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.monoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.mulEquivClass.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))))))) e) G') H') (x : G), Eq.{succ u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (fun (_x : MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H')) (MulEquiv.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (QuotientGroup.congr.{u1, u2} G _inst_1 H _inst_2 G' H' _inst_3 _inst_4 e he) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G')) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (QuotientGroup.mk'.{u1} G _inst_1 G' _inst_3) x)) (coeFn.{succ u2, succ u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (fun (_x : MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) => H -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H')) (MonoidHom.hasCoeToFun.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (QuotientGroup.mk'.{u2} H _inst_2 H' _inst_4) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (fun (_x : MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) => G -> H) (MulEquiv.hasCoeToFun.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) e x))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (G' : Subgroup.{u1} G _inst_1) (H' : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] [_inst_4 : Subgroup.Normal.{u2} H _inst_2 H'] (e : MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (he : Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 (MonoidHomClass.toMonoidHom.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.instMonoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) e) G') H') (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (fun (a : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') a) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))))) (QuotientGroup.mk'.{u1} G _inst_1 G' _inst_3) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))))) (QuotientGroup.congr.{u1, u2} G _inst_1 H _inst_2 G' H' _inst_3 _inst_4 e he) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))))) (QuotientGroup.mk'.{u1} G _inst_1 G' _inst_3) x)) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : H) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))) (MonoidHom.monoidHomClass.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))) (QuotientGroup.mk'.{u2} H _inst_2 H' _inst_4) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => H) _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))))) e x))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (G' : Subgroup.{u1} G _inst_1) (H' : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] [_inst_4 : Subgroup.Normal.{u2} H _inst_2 H'] (e : MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (he : Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 (MonoidHomClass.toMonoidHom.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.instMonoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) e) G') H') (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (fun (a : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') a) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))))) (QuotientGroup.mk'.{u1} G _inst_1 G' _inst_3) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))))) (QuotientGroup.congr.{u1, u2} G _inst_1 H _inst_2 G' H' _inst_3 _inst_4 e he) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))))) (QuotientGroup.mk'.{u1} G _inst_1 G' _inst_3) x)) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : H) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))) (MonoidHom.monoidHomClass.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))) (QuotientGroup.mk'.{u2} H _inst_2 H' _inst_4) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => H) _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))))) e x))
 Case conversion may be inaccurate. Consider using '#align quotient_group.congr_mk' QuotientGroup.congr_mk'ₓ'. -/
 theorem congr_mk' (e : G ≃* H) (he : G'.map ↑e = H') (x) :
     congr G' H' e he (mk' G' x) = mk' H' (e x) :=
@@ -500,7 +500,7 @@ theorem congr_mk' (e : G ≃* H) (he : G'.map ↑e = H') (x) :
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (G' : Subgroup.{u1} G _inst_1) (H' : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] [_inst_4 : Subgroup.Normal.{u2} H _inst_2 H'] (e : MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (he : Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.monoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.mulEquivClass.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))))))) e) G') H') (x : G), Eq.{succ u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (fun (_x : MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H')) (MulEquiv.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (QuotientGroup.congr.{u1, u2} G _inst_1 H _inst_2 G' H' _inst_3 _inst_4 e he) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 G'))) x)) (coeFn.{succ u2, succ u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (fun (_x : MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) => H -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H')) (MonoidHom.hasCoeToFun.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (QuotientGroup.mk'.{u2} H _inst_2 H' _inst_4) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (fun (_x : MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) => G -> H) (MulEquiv.hasCoeToFun.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) e x))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (G' : Subgroup.{u1} G _inst_1) (H' : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] [_inst_4 : Subgroup.Normal.{u2} H _inst_2 H'] (e : MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (he : Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 (MonoidHomClass.toMonoidHom.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.instMonoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) e) G') H') (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.mk.{u1} G _inst_1 G' x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))))) (QuotientGroup.congr.{u1, u2} G _inst_1 H _inst_2 G' H' _inst_3 _inst_4 e he) (QuotientGroup.mk.{u1} G _inst_1 G' x)) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : H) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))) (MonoidHom.monoidHomClass.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))) (QuotientGroup.mk'.{u2} H _inst_2 H' _inst_4) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => H) _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))))) e x))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (G' : Subgroup.{u1} G _inst_1) (H' : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] [_inst_4 : Subgroup.Normal.{u2} H _inst_2 H'] (e : MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (he : Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 (MonoidHomClass.toMonoidHom.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.instMonoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) e) G') H') (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.mk.{u1} G _inst_1 G' x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))))) (QuotientGroup.congr.{u1, u2} G _inst_1 H _inst_2 G' H' _inst_3 _inst_4 e he) (QuotientGroup.mk.{u1} G _inst_1 G' x)) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : H) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))) (MonoidHom.monoidHomClass.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))) (QuotientGroup.mk'.{u2} H _inst_2 H' _inst_4) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => H) _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))))) e x))
 Case conversion may be inaccurate. Consider using '#align quotient_group.congr_apply QuotientGroup.congr_applyₓ'. -/
 @[simp]
 theorem congr_apply (e : G ≃* H) (he : G'.map ↑e = H') (x : G) :
@@ -553,7 +553,7 @@ def kerLift : G ⧸ ker φ →* H :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : G), Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) -> H) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))) g)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ g)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
 Case conversion may be inaccurate. Consider using '#align quotient_group.ker_lift_mk QuotientGroup.kerLift_mkₓ'. -/
 @[simp, to_additive]
 theorem kerLift_mk (g : G) : (kerLift φ) g = φ g :=
@@ -565,7 +565,7 @@ theorem kerLift_mk (g : G) : (kerLift φ) g = φ g :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : G), Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) -> H) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ g)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
 Case conversion may be inaccurate. Consider using '#align quotient_group.ker_lift_mk' QuotientGroup.kerLift_mk'ₓ'. -/
 @[simp, to_additive]
 theorem kerLift_mk' (g : G) : (kerLift φ) (mk g) = φ g :=
@@ -577,7 +577,7 @@ theorem kerLift_mk' (g : G) : (kerLift φ) (mk g) = φ g :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Injective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) -> H) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Injective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Injective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ))
 Case conversion may be inaccurate. Consider using '#align quotient_group.ker_lift_injective QuotientGroup.kerLift_injectiveₓ'. -/
 @[to_additive]
 theorem kerLift_injective : Injective (kerLift φ) := fun a b =>
@@ -605,7 +605,7 @@ def rangeKerLift : G ⧸ ker φ →* φ.range :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Injective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.rangeKerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))))) (Monoid.toMulOneClass.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (DivInvMonoid.toMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Group.toDivInvMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Subgroup.toGroup.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.rangeKerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))))) (Monoid.toMulOneClass.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (DivInvMonoid.toMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Group.toDivInvMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Subgroup.toGroup.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) -> (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.rangeKerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))))) (Monoid.toMulOneClass.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (DivInvMonoid.toMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Group.toDivInvMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Subgroup.toGroup.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (QuotientGroup.rangeKerLift.{u1, u2} G _inst_1 H _inst_2 φ))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Injective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (QuotientGroup.rangeKerLift.{u1, u2} G _inst_1 H _inst_2 φ))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Injective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (QuotientGroup.rangeKerLift.{u1, u2} G _inst_1 H _inst_2 φ))
 Case conversion may be inaccurate. Consider using '#align quotient_group.range_ker_lift_injective QuotientGroup.rangeKerLift_injectiveₓ'. -/
 @[to_additive]
 theorem rangeKerLift_injective : Injective (rangeKerLift φ) := fun a b =>
@@ -620,7 +620,7 @@ theorem rangeKerLift_injective : Injective (rangeKerLift φ) := fun a b =>
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Surjective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.rangeKerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))))) (Monoid.toMulOneClass.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (DivInvMonoid.toMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Group.toDivInvMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Subgroup.toGroup.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.rangeKerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))))) (Monoid.toMulOneClass.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (DivInvMonoid.toMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Group.toDivInvMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Subgroup.toGroup.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) -> (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.rangeKerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))))) (Monoid.toMulOneClass.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (DivInvMonoid.toMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Group.toDivInvMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Subgroup.toGroup.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (QuotientGroup.rangeKerLift.{u1, u2} G _inst_1 H _inst_2 φ))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Surjective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (QuotientGroup.rangeKerLift.{u1, u2} G _inst_1 H _inst_2 φ))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Surjective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (QuotientGroup.rangeKerLift.{u1, u2} G _inst_1 H _inst_2 φ))
 Case conversion may be inaccurate. Consider using '#align quotient_group.range_ker_lift_surjective QuotientGroup.rangeKerLift_surjectiveₓ'. -/
 @[to_additive]
 theorem rangeKerLift_surjective : Surjective (rangeKerLift φ) :=
@@ -650,7 +650,7 @@ noncomputable def quotientKerEquivRange : G ⧸ ker φ ≃* range φ :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (ψ : H -> G), (Function.RightInverse.{succ u1, succ u2} G H ψ (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ)) -> (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.quotientKerEquivOfRightInverse._proof_1.{u1, u2} G _inst_1 H _inst_2 φ)))))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (ψ : H -> G), (Function.RightInverse.{succ u1, succ u2} G H ψ (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ)) -> (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (ψ : H -> G), (Function.RightInverse.{succ u1, succ u2} G H ψ (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ)) -> (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_ker_equiv_of_right_inverse QuotientGroup.quotientKerEquivOfRightInverseₓ'. -/
 /-- The canonical isomorphism `G/(ker φ) ≃* H` induced by a homomorphism `φ : G →* H`
 with a right inverse `ψ : H → G`. -/
@@ -683,7 +683,7 @@ def quotientBot : G ⧸ (⊥ : Subgroup G) ≃* G :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), (Function.Surjective.{succ u1, succ u2} G H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ)) -> (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.quotientKerEquivOfRightInverse._proof_1.{u1, u2} G _inst_1 H _inst_2 φ)))))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), (Function.Surjective.{succ u1, succ u2} G H (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ)) -> (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), (Function.Surjective.{succ u1, succ u2} G H (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ)) -> (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_ker_equiv_of_surjective QuotientGroup.quotientKerEquivOfSurjectiveₓ'. -/
 /-- The canonical isomorphism `G/(ker φ) ≃* H` induced by a surjection `φ : G →* H`.
 
@@ -746,7 +746,7 @@ def quotientMapSubgroupOfOfLe {A' A B' B : Subgroup G} [hAN : (A'.subgroupOf A).
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {A' : Subgroup.{u1} G _inst_1} {A : Subgroup.{u1} G _inst_1} {B' : Subgroup.{u1} G _inst_1} {B : Subgroup.{u1} G _inst_1} [hAN : Subgroup.Normal.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)] [hBN : Subgroup.Normal.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)] (h' : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) A' B') (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) A B) (x : coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) => (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) -> (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B))) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (QuotientGroup.quotientMapSubgroupOfOfLe.{u1} G _inst_1 A' A B' B hAN hBN h' h) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)))) x)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)))) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)))) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B))))) (fun (_x : MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)))) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B))))) => (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) -> (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B)) (MonoidHom.hasCoeToFun.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)))) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B))))) (Subgroup.inclusion.{u1} G _inst_1 A B h) x))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {A' : Subgroup.{u1} G _inst_1} {A : Subgroup.{u1} G _inst_1} {B' : Subgroup.{u1} G _inst_1} {B : Subgroup.{u1} G _inst_1} [hAN : Subgroup.Normal.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)] [hBN : Subgroup.Normal.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)] (h' : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) A' B') (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) A B) (x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) => HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.mk.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (fun (_x : HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) => HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))))) (QuotientGroup.quotientMapSubgroupOfOfLe.{u1} G _inst_1 A' A B' B hAN hBN h' h) (QuotientGroup.mk.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) x)) (QuotientGroup.mk.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) => Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) x) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (fun (_x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) => Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A))) (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B)) (MonoidHom.monoidHomClass.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))))) (Subgroup.inclusion.{u1} G _inst_1 A B h) x))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {A' : Subgroup.{u1} G _inst_1} {A : Subgroup.{u1} G _inst_1} {B' : Subgroup.{u1} G _inst_1} {B : Subgroup.{u1} G _inst_1} [hAN : Subgroup.Normal.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)] [hBN : Subgroup.Normal.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)] (h' : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) A' B') (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) A B) (x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) => HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.mk.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (fun (_x : HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) => HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))))) (QuotientGroup.quotientMapSubgroupOfOfLe.{u1} G _inst_1 A' A B' B hAN hBN h' h) (QuotientGroup.mk.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) x)) (QuotientGroup.mk.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) => Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) x) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (fun (_x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) => Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A))) (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B)) (MonoidHom.monoidHomClass.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))))) (Subgroup.inclusion.{u1} G _inst_1 A B h) x))
 Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_map_subgroup_of_of_le_coe QuotientGroup.quotientMapSubgroupOfOfLe_mkₓ'. -/
 @[simp, to_additive]
 theorem quotientMapSubgroupOfOfLe_mk {A' A B' B : Subgroup G} [hAN : (A'.subgroupOf A).Normal]
@@ -823,7 +823,7 @@ theorem homQuotientZPowOfHom_comp :
 lean 3 declaration is
   forall {A : Type.{u1}} {B : Type.{u1}} [_inst_3 : CommGroup.{u1} A] [_inst_4 : CommGroup.{u1} B] (f : MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (g : MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (n : Int), (Function.RightInverse.{succ u1, succ u1} A B (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (fun (_x : MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) => B -> A) (MonoidHom.hasCoeToFun.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) g) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (fun (_x : MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) => A -> B) (MonoidHom.hasCoeToFun.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) f)) -> (Eq.{succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (QuotientGroup.homQuotientZPowOfHom._proof_1.{u1} B _inst_4 n))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (QuotientGroup.homQuotientZPowOfHom._proof_2.{u1} B _inst_4 n)))))) (MonoidHom.comp.{u1, u1, u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (QuotientGroup.homQuotientZPowOfHom._proof_1.{u1} B _inst_4 n))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (QuotientGroup.Quotient.group.{u1} A (CommGroup.toGroup.{u1} A _inst_3) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)) (QuotientGroup.homQuotientZPowOfHom._proof_1.{u1} A _inst_3 n))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (QuotientGroup.homQuotientZPowOfHom._proof_2.{u1} B _inst_4 n))))) (QuotientGroup.homQuotientZPowOfHom.{u1} A B _inst_3 _inst_4 f n) (QuotientGroup.homQuotientZPowOfHom.{u1} B A _inst_4 _inst_3 g n)) (MonoidHom.id.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (QuotientGroup.homQuotientZPowOfHom._proof_1.{u1} B _inst_4 n)))))))
 but is expected to have type
-  forall {A : Type.{u1}} {B : Type.{u1}} [_inst_3 : CommGroup.{u1} A] [_inst_4 : CommGroup.{u1} B] (f : MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (g : MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (n : Int), (Function.RightInverse.{succ u1, succ u1} A B (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : B) => A) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) B A (MulOneClass.toMul.{u1} B (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (MulOneClass.toMul.{u1} A (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (MonoidHom.monoidHomClass.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))))) g) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : A) => B) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) A B (MulOneClass.toMul.{u1} A (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (MulOneClass.toMul.{u1} B (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (MonoidHom.monoidHomClass.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))))) f)) -> (Eq.{succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)))))))) (MonoidHom.comp.{u1, u1, u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (QuotientGroup.Quotient.group.{u1} A (CommGroup.toGroup.{u1} A _inst_3) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)) (Subgroup.normal_of_comm.{u1} A _inst_3 (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))))))) (QuotientGroup.homQuotientZPowOfHom.{u1} A B _inst_3 _inst_4 f n) (QuotientGroup.homQuotientZPowOfHom.{u1} B A _inst_4 _inst_3 g n)) (MonoidHom.id.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)))))))))
+  forall {A : Type.{u1}} {B : Type.{u1}} [_inst_3 : CommGroup.{u1} A] [_inst_4 : CommGroup.{u1} B] (f : MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (g : MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (n : Int), (Function.RightInverse.{succ u1, succ u1} A B (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : B) => A) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) B A (MulOneClass.toMul.{u1} B (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (MulOneClass.toMul.{u1} A (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (MonoidHom.monoidHomClass.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))))) g) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : A) => B) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) A B (MulOneClass.toMul.{u1} A (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (MulOneClass.toMul.{u1} B (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (MonoidHom.monoidHomClass.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))))) f)) -> (Eq.{succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)))))))) (MonoidHom.comp.{u1, u1, u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (QuotientGroup.Quotient.group.{u1} A (CommGroup.toGroup.{u1} A _inst_3) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)) (Subgroup.normal_of_comm.{u1} A _inst_3 (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))))))) (QuotientGroup.homQuotientZPowOfHom.{u1} A B _inst_3 _inst_4 f n) (QuotientGroup.homQuotientZPowOfHom.{u1} B A _inst_4 _inst_3 g n)) (MonoidHom.id.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)))))))))
 Case conversion may be inaccurate. Consider using '#align quotient_group.hom_quotient_zpow_of_hom_comp_of_right_inverse QuotientGroup.homQuotientZPowOfHom_comp_of_rightInverseₓ'. -/
 @[simp, to_additive]
 theorem homQuotientZPowOfHom_comp_of_rightInverse (i : Function.RightInverse g f) :
@@ -971,7 +971,7 @@ def quotientQuotientEquivQuotientAux : (G ⧸ N) ⧸ M.map (mk' N) →* G ⧸ M
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M] (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N M) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) => (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M)) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (QuotientGroup.quotientQuotientEquivQuotientAux.{u1} G _inst_1 N nN M nM h) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasLiftT.mk.{succ u1, succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (CoeTCₓ.coe.{succ u1, succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)))) x)) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M)) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 M nM (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) x)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M] (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N M) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (fun (_x : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM)))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))) (QuotientGroup.quotientQuotientEquivQuotientAux.{u1} G _inst_1 N nN M nM h) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 M nM (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) x)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M] (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N M) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (fun (_x : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM)))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))) (QuotientGroup.quotientQuotientEquivQuotientAux.{u1} G _inst_1 N nN M nM h) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 M nM (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) x)
 Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_quotient_equiv_quotient_aux_coe QuotientGroup.quotientQuotientEquivQuotientAux_mkₓ'. -/
 @[simp, to_additive]
 theorem quotientQuotientEquivQuotientAux_mk (x : G ⧸ N) :
@@ -984,7 +984,7 @@ theorem quotientQuotientEquivQuotientAux_mk (x : G ⧸ N) :
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M] (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N M) (x : G), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) => (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M)) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (QuotientGroup.quotientQuotientEquivQuotientAux.{u1} G _inst_1 N nN M nM h) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasLiftT.mk.{succ u1, succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (CoeTCₓ.coe.{succ u1, succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) x))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 M))) x)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M] (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N M) (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.mk.{u1} G _inst_1 N x))) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (fun (_x : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM)))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))) (QuotientGroup.quotientQuotientEquivQuotientAux.{u1} G _inst_1 N nN M nM h) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.mk.{u1} G _inst_1 N x))) (QuotientGroup.mk.{u1} G _inst_1 M x)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M] (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N M) (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.mk.{u1} G _inst_1 N x))) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (fun (_x : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM)))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))) (QuotientGroup.quotientQuotientEquivQuotientAux.{u1} G _inst_1 N nN M nM h) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.mk.{u1} G _inst_1 N x))) (QuotientGroup.mk.{u1} G _inst_1 M x)
 Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_quotient_equiv_quotient_aux_coe_coe QuotientGroup.quotientQuotientEquivQuotientAux_mk_mkₓ'. -/
 @[to_additive]
 theorem quotientQuotientEquivQuotientAux_mk_mk (x : G) :
Diff
@@ -99,7 +99,7 @@ def mk' : G →* G ⧸ N :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N], Eq.{succ u1} ((fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (QuotientGroup.mk'.{u1} G _inst_1 N nN)) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N], Eq.{succ u1} (forall (a : G), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) a) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN)) (QuotientGroup.mk.{u1} G _inst_1 N)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N], Eq.{succ u1} (forall (a : G), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) a) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN)) (QuotientGroup.mk.{u1} G _inst_1 N)
 Case conversion may be inaccurate. Consider using '#align quotient_group.coe_mk' QuotientGroup.coe_mk'ₓ'. -/
 @[simp, to_additive]
 theorem coe_mk' : (mk' N : G → G ⧸ N) = coe :=
@@ -111,7 +111,7 @@ theorem coe_mk' : (mk' N : G → G ⧸ N) = coe :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (x : G), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) x)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x) (QuotientGroup.mk.{u1} G _inst_1 N x)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x) (QuotientGroup.mk.{u1} G _inst_1 N x)
 Case conversion may be inaccurate. Consider using '#align quotient_group.mk'_apply QuotientGroup.mk'_applyₓ'. -/
 @[simp, to_additive]
 theorem mk'_apply (x : G) : mk' N x = x :=
@@ -123,7 +123,7 @@ theorem mk'_apply (x : G) : mk' N x = x :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N], Function.Surjective.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N], Function.Surjective.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N], Function.Surjective.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN))
 Case conversion may be inaccurate. Consider using '#align quotient_group.mk'_surjective QuotientGroup.mk'_surjectiveₓ'. -/
 @[to_additive]
 theorem mk'_surjective : Surjective <| mk' N :=
@@ -135,7 +135,7 @@ theorem mk'_surjective : Surjective <| mk' N :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {x : G} {y : G}, Iff (Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) y)) (Exists.{succ u1} G (fun (z : G) => Exists.{0} (Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) z N) (fun (H : Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) z N) => Eq.{succ u1} G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) x z) y)))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {x : G} {y : G}, Iff (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) y)) (Exists.{succ u1} G (fun (z : G) => And (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) z N) (Eq.{succ u1} G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) x z) y)))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {x : G} {y : G}, Iff (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) y)) (Exists.{succ u1} G (fun (z : G) => And (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) z N) (Eq.{succ u1} G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))) x z) y)))
 Case conversion may be inaccurate. Consider using '#align quotient_group.mk'_eq_mk' QuotientGroup.mk'_eq_mk'ₓ'. -/
 @[to_additive]
 theorem mk'_eq_mk' {x y : G} : mk' N x = mk' N y ↔ ∃ z ∈ N, x * z = y :=
@@ -279,7 +279,7 @@ theorem mk_zpow (a : G) (n : ℤ) : ((a ^ n : G) : Q ) = a ^ n :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), (forall (x : G), (Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) x N) -> (Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ x) (OfNat.ofNat.{u2} H 1 (OfNat.mk.{u2} H 1 (One.one.{u2} H (MulOneClass.toHasOne.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))))))) -> (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), (forall (x : G), (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) (Group.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) _inst_2)))))))) -> (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), (forall (x : G), (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (Group.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) _inst_2)))))))) -> (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))
 Case conversion may be inaccurate. Consider using '#align quotient_group.lift QuotientGroup.liftₓ'. -/
 /-- A group homomorphism `φ : G →* H` with `N ⊆ ker(φ)` descends (i.e. `lift`s) to a
 group homomorphism `G/N →* H`. -/
@@ -300,7 +300,7 @@ def lift (φ : G →* H) (HN : ∀ x ∈ N, φ x = 1) : Q →* H :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) x N) -> (Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ x) (OfNat.ofNat.{u2} H 1 (OfNat.mk.{u2} H 1 (One.one.{u2} H (MulOneClass.toHasOne.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))))))) (g : G), Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> H) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) g)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ g)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) (Group.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) _inst_2)))))))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) (QuotientGroup.mk.{u1} G _inst_1 N g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (QuotientGroup.mk.{u1} G _inst_1 N g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (Group.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) _inst_2)))))))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) (QuotientGroup.mk.{u1} G _inst_1 N g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (QuotientGroup.mk.{u1} G _inst_1 N g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
 Case conversion may be inaccurate. Consider using '#align quotient_group.lift_mk QuotientGroup.lift_mkₓ'. -/
 @[simp, to_additive]
 theorem lift_mk {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N φ HN (g : Q ) = φ g :=
@@ -312,7 +312,7 @@ theorem lift_mk {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N φ
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) x N) -> (Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ x) (OfNat.ofNat.{u2} H 1 (OfNat.mk.{u2} H 1 (One.one.{u2} H (MulOneClass.toHasOne.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))))))) (g : G), Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> H) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (QuotientGroup.mk.{u1} G _inst_1 N g)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ g)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) (Group.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) _inst_2)))))))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) (QuotientGroup.mk.{u1} G _inst_1 N g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (QuotientGroup.mk.{u1} G _inst_1 N g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (Group.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) _inst_2)))))))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) (QuotientGroup.mk.{u1} G _inst_1 N g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (QuotientGroup.mk.{u1} G _inst_1 N g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
 Case conversion may be inaccurate. Consider using '#align quotient_group.lift_mk' QuotientGroup.lift_mk'ₓ'. -/
 @[simp, to_additive]
 theorem lift_mk' {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N φ HN (mk g : Q ) = φ g :=
@@ -324,7 +324,7 @@ theorem lift_mk' {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N 
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) x N) -> (Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ x) (OfNat.ofNat.{u2} H 1 (OfNat.mk.{u2} H 1 (One.one.{u2} H (MulOneClass.toHasOne.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))))))) (g : G), Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> H) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 N nN)) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (Quot.mk.{succ u1} G (Setoid.r.{succ u1} G (QuotientGroup.leftRel.{u1} G _inst_1 N)) g)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ g)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) (Group.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) _inst_2)))))))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) (Quot.mk.{succ u1} G (Setoid.r.{succ u1} G (QuotientGroup.leftRel.{u1} G _inst_1 N)) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (Quot.mk.{succ u1} G (Setoid.r.{succ u1} G (QuotientGroup.leftRel.{u1} G _inst_1 N)) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))} (HN : forall (x : G), (Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x N) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ x) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (InvOneClass.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (DivInvOneMonoid.toInvOneClass.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (DivisionMonoid.toDivInvOneMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) (Group.toDivisionMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) _inst_2)))))))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) (Quot.mk.{succ u1} G (Setoid.r.{succ u1} G (QuotientGroup.leftRel.{u1} G _inst_1 N)) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.lift.{u1, u2} G _inst_1 N nN H _inst_2 φ HN) (Quot.mk.{succ u1} G (Setoid.r.{succ u1} G (QuotientGroup.leftRel.{u1} G _inst_1 N)) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
 Case conversion may be inaccurate. Consider using '#align quotient_group.lift_quot_mk QuotientGroup.lift_quot_mkₓ'. -/
 @[simp, to_additive]
 theorem lift_quot_mk {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) :
@@ -356,7 +356,7 @@ def map (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f) : G ⧸
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (x : G), Eq.{succ u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M)) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_3 f h) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) x)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasLiftT.mk.{succ u2, succ u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (CoeTCₓ.coe.{succ u2, succ u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u2} H _inst_2 M))) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) f x))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.mk.{u1} G _inst_1 N x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3)))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_3 f h) (QuotientGroup.mk.{u1} G _inst_1 N x)) (QuotientGroup.mk.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) _inst_2 M (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) f x))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.mk.{u1} G _inst_1 N x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3)))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_3 f h) (QuotientGroup.mk.{u1} G _inst_1 N x)) (QuotientGroup.mk.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) _inst_2 M (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) f x))
 Case conversion may be inaccurate. Consider using '#align quotient_group.map_coe QuotientGroup.map_mkₓ'. -/
 @[simp, to_additive]
 theorem map_mk (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f) (x : G) :
@@ -369,7 +369,7 @@ theorem map_mk (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f)
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (x : G), Eq.{succ u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M)) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_3 f h) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasLiftT.mk.{succ u2, succ u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (CoeTCₓ.coe.{succ u2, succ u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u2} H _inst_2 M))) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) f x))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (a : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) a) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3)))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_3 f h) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x)) (QuotientGroup.mk.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) x) _inst_2 M (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) f x))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (M : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u2} H _inst_2 M] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (a : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) a) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3)))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_3))))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_3 f h) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.mk'.{u1} G _inst_1 N nN) x)) (QuotientGroup.mk.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) x) _inst_2 M (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) f x))
 Case conversion may be inaccurate. Consider using '#align quotient_group.map_mk' QuotientGroup.map_mk'ₓ'. -/
 @[to_additive]
 theorem map_mk' (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f) (x : G) :
@@ -382,7 +382,7 @@ theorem map_mk' (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f)
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (h : optParam.{0} (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N)) (Eq.le.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1))) (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N) N (Subgroup.comap_id.{u1} G _inst_1 N))) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N)) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 N nN (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) x) x
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (h : optParam.{0} (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N)) (Eq.le.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1)))) (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N) N (Subgroup.comap_id.{u1} G _inst_1 N))) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 N nN (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) x) x
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (h : optParam.{0} (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N)) (Eq.le.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1)))) (Subgroup.comap.{u1, u1} G _inst_1 G _inst_1 (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) N) N (Subgroup.comap_id.{u1} G _inst_1 N))) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 N nN (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) x) x
 Case conversion may be inaccurate. Consider using '#align quotient_group.map_id_apply QuotientGroup.map_id_applyₓ'. -/
 @[to_additive]
 theorem map_id_apply (h : N ≤ Subgroup.comap (MonoidHom.id _) N := (Subgroup.comap_id N).le) (x) :
@@ -408,7 +408,7 @@ theorem map_id (h : N ≤ Subgroup.comap (MonoidHom.id _) N := (Subgroup.comap_i
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] {H : Type.{u2}} [_inst_2 : Group.{u2} H] {I : Type.{u3}} [_inst_3 : Group.{u3} I] (M : Subgroup.{u2} H _inst_2) (O : Subgroup.{u3} I _inst_3) [_inst_4 : Subgroup.Normal.{u2} H _inst_2 M] [_inst_5 : Subgroup.Normal.{u3} I _inst_3 O] (f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : MonoidHom.{u2, u3} H I (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3)))) (hf : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M)) (hg : LE.le.{u2} (Subgroup.{u2} H _inst_2) (Preorder.toLE.{u2} (Subgroup.{u2} H _inst_2) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} H _inst_2) (SetLike.partialOrder.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)))) M (Subgroup.comap.{u2, u3} H _inst_2 I _inst_3 g O)) (hgf : optParam.{0} (LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N (Subgroup.comap.{u1, u3} G _inst_1 I _inst_3 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) O)) (LE.le.trans.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1))) N (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u1, u3} G _inst_1 I _inst_3 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) O) hf (LE.le.trans_eq.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1))) (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u1, u2} G _inst_1 H _inst_2 f (Subgroup.comap.{u2, u3} H _inst_2 I _inst_3 g O)) (Subgroup.comap.{u1, u3} G _inst_1 I _inst_3 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) O) (Subgroup.comap_mono.{u1, u2} G _inst_1 H _inst_2 f M (Subgroup.comap.{u2, u3} H _inst_2 I _inst_3 g O) hg) (Subgroup.comap_comap.{u1, u2, u3} G _inst_1 H _inst_2 I _inst_3 O g f)))) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N), Eq.{succ u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) (fun (_x : MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) => (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) -> (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O)) (MonoidHom.hasCoeToFun.{u2, u3} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) (QuotientGroup.map.{u2, u3} H _inst_2 M _inst_4 I _inst_3 O _inst_5 g hg) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4))))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M)) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) M) (QuotientGroup.Quotient.group.{u2} H _inst_2 M _inst_4))))) (QuotientGroup.map.{u1, u2} G _inst_1 N nN H _inst_2 M _inst_4 f hf) x)) (coeFn.{max (succ u3) (succ u1), max (succ u1) (succ u3)} (MonoidHom.{u1, u3} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) (fun (_x : MonoidHom.{u1, u3} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O)) (MonoidHom.hasCoeToFun.{u1, u3} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} I (Subgroup.{u3} I _inst_3) (QuotientGroup.Subgroup.hasQuotient.{u3} I _inst_3) O) (QuotientGroup.Quotient.group.{u3} I _inst_3 O _inst_5))))) (QuotientGroup.map.{u1, u3} G _inst_1 N nN I _inst_3 O _inst_5 (MonoidHom.comp.{u1, u2, u3} G H I (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u3} I (DivInvMonoid.toMonoid.{u3} I (Group.toDivInvMonoid.{u3} I _inst_3))) g f) hgf) x)
 but is expected to have type
-  forall {G : Type.{u2}} [_inst_1 : Group.{u2} G] (N : Subgroup.{u2} G _inst_1) [nN : Subgroup.Normal.{u2} G _inst_1 N] {H : Type.{u3}} [_inst_2 : Group.{u3} H] {I : Type.{u1}} [_inst_3 : Group.{u1} I] (M : Subgroup.{u3} H _inst_2) (O : Subgroup.{u1} I _inst_3) [_inst_4 : Subgroup.Normal.{u3} H _inst_2 M] [_inst_5 : Subgroup.Normal.{u1} I _inst_3 O] (f : MonoidHom.{u2, u3} G H (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2)))) (g : MonoidHom.{u3, u1} H I (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3)))) (hf : LE.le.{u2} (Subgroup.{u2} G _inst_1) (Preorder.toLE.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1))))) N (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M)) (hg : LE.le.{u3} (Subgroup.{u3} H _inst_2) (Preorder.toLE.{u3} (Subgroup.{u3} H _inst_2) (PartialOrder.toPreorder.{u3} (Subgroup.{u3} H _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (Subgroup.{u3} H _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Subgroup.{u3} H _inst_2) (Subgroup.instCompleteLatticeSubgroup.{u3} H _inst_2))))) M (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O)) (hgf : optParam.{0} (LE.le.{u2} (Subgroup.{u2} G _inst_1) (Preorder.toLE.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1))))) N (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O)) (LE.le.trans.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1)))) N (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O) hf (LE.le.trans_eq.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1)))) (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O)) (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O) (Subgroup.comap_mono.{u3, u2} G _inst_1 H _inst_2 f M (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O) hg) (Subgroup.comap_comap.{u2, u3, u1} G _inst_1 H _inst_2 I _inst_3 O g f)))) (x : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) => HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (fun (a : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) a) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN))))) (MulOneClass.toMul.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (MonoidHom.monoidHomClass.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))))) (QuotientGroup.map.{u2, u3} G _inst_1 N nN H _inst_2 M _inst_4 f hf) x)) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (fun (_x : HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) => HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (MulOneClass.toMul.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5)))) (MonoidHom.monoidHomClass.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))))) (QuotientGroup.map.{u3, u1} H _inst_2 M _inst_4 I _inst_3 O _inst_5 g hg) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN))))) (MulOneClass.toMul.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (MonoidHom.monoidHomClass.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))))) (QuotientGroup.map.{u2, u3} G _inst_1 N nN H _inst_2 M _inst_4 f hf) x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5)))) (MonoidHom.monoidHomClass.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))))) (QuotientGroup.map.{u2, u1} G _inst_1 N nN I _inst_3 O _inst_5 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) hgf) x)
+  forall {G : Type.{u2}} [_inst_1 : Group.{u2} G] (N : Subgroup.{u2} G _inst_1) [nN : Subgroup.Normal.{u2} G _inst_1 N] {H : Type.{u3}} [_inst_2 : Group.{u3} H] {I : Type.{u1}} [_inst_3 : Group.{u1} I] (M : Subgroup.{u3} H _inst_2) (O : Subgroup.{u1} I _inst_3) [_inst_4 : Subgroup.Normal.{u3} H _inst_2 M] [_inst_5 : Subgroup.Normal.{u1} I _inst_3 O] (f : MonoidHom.{u2, u3} G H (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2)))) (g : MonoidHom.{u3, u1} H I (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3)))) (hf : LE.le.{u2} (Subgroup.{u2} G _inst_1) (Preorder.toLE.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1))))) N (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M)) (hg : LE.le.{u3} (Subgroup.{u3} H _inst_2) (Preorder.toLE.{u3} (Subgroup.{u3} H _inst_2) (PartialOrder.toPreorder.{u3} (Subgroup.{u3} H _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u3} (Subgroup.{u3} H _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Subgroup.{u3} H _inst_2) (Subgroup.instCompleteLatticeSubgroup.{u3} H _inst_2))))) M (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O)) (hgf : optParam.{0} (LE.le.{u2} (Subgroup.{u2} G _inst_1) (Preorder.toLE.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1))))) N (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O)) (LE.le.trans.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1)))) N (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O) hf (LE.le.trans_eq.{u2} (Subgroup.{u2} G _inst_1) (PartialOrder.toPreorder.{u2} (Subgroup.{u2} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subgroup.{u2} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subgroup.{u2} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u2} G _inst_1)))) (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f M) (Subgroup.comap.{u2, u3} G _inst_1 H _inst_2 f (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O)) (Subgroup.comap.{u2, u1} G _inst_1 I _inst_3 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) O) (Subgroup.comap_mono.{u3, u2} G _inst_1 H _inst_2 f M (Subgroup.comap.{u3, u1} H _inst_2 I _inst_3 g O) hg) (Subgroup.comap_comap.{u2, u3, u1} G _inst_1 H _inst_2 I _inst_3 O g f)))) (x : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) => HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (fun (a : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) a) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN))))) (MulOneClass.toMul.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (MonoidHom.monoidHomClass.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))))) (QuotientGroup.map.{u2, u3} G _inst_1 N nN H _inst_2 M _inst_4 f hf) x)) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (fun (_x : HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) => HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (MulOneClass.toMul.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5)))) (MonoidHom.monoidHomClass.{u3, u1} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))))) (QuotientGroup.map.{u3, u1} H _inst_2 M _inst_4 I _inst_3 O _inst_5 g hg) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN))))) (MulOneClass.toMul.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4)))) (MonoidHom.monoidHomClass.{u2, u3} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (DivInvMonoid.toMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (Group.toDivInvMonoid.{u3} (HasQuotient.Quotient.{u3, u3} H (Subgroup.{u3} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u3} H _inst_2) M) (QuotientGroup.Quotient.group.{u3} H _inst_2 M _inst_4))))))) (QuotientGroup.map.{u2, u3} G _inst_1 N nN H _inst_2 M _inst_4 f hf) x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))) (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5)))) (MonoidHom.monoidHomClass.{u2, u1} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} G (Subgroup.{u2} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u2} G _inst_1) N) (QuotientGroup.Quotient.group.{u2} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} I (Subgroup.{u1} I _inst_3) (QuotientGroup.instHasQuotientSubgroup.{u1} I _inst_3) O) (QuotientGroup.Quotient.group.{u1} I _inst_3 O _inst_5))))))) (QuotientGroup.map.{u2, u1} G _inst_1 N nN I _inst_3 O _inst_5 (MonoidHom.comp.{u2, u3, u1} G H I (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_2))) (Monoid.toMulOneClass.{u1} I (DivInvMonoid.toMonoid.{u1} I (Group.toDivInvMonoid.{u1} I _inst_3))) g f) hgf) x)
 Case conversion may be inaccurate. Consider using '#align quotient_group.map_map QuotientGroup.map_mapₓ'. -/
 @[simp, to_additive]
 theorem map_map {I : Type _} [Group I] (M : Subgroup H) (O : Subgroup I) [M.Normal] [O.Normal]
@@ -489,7 +489,7 @@ theorem congr_mk (e : G ≃* H) (he : G'.map ↑e = H') (x) : congr G' H' e he (
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (G' : Subgroup.{u1} G _inst_1) (H' : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] [_inst_4 : Subgroup.Normal.{u2} H _inst_2 H'] (e : MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (he : Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.monoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.mulEquivClass.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))))))) e) G') H') (x : G), Eq.{succ u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (fun (_x : MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H')) (MulEquiv.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (QuotientGroup.congr.{u1, u2} G _inst_1 H _inst_2 G' H' _inst_3 _inst_4 e he) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (fun (_x : MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) => G -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G')) (MonoidHom.hasCoeToFun.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (QuotientGroup.mk'.{u1} G _inst_1 G' _inst_3) x)) (coeFn.{succ u2, succ u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (fun (_x : MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) => H -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H')) (MonoidHom.hasCoeToFun.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (QuotientGroup.mk'.{u2} H _inst_2 H' _inst_4) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (fun (_x : MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) => G -> H) (MulEquiv.hasCoeToFun.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) e x))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (G' : Subgroup.{u1} G _inst_1) (H' : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] [_inst_4 : Subgroup.Normal.{u2} H _inst_2 H'] (e : MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (he : Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 (MonoidHomClass.toMonoidHom.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.instMonoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) e) G') H') (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (fun (a : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') a) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))))) (QuotientGroup.mk'.{u1} G _inst_1 G' _inst_3) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))))) (QuotientGroup.congr.{u1, u2} G _inst_1 H _inst_2 G' H' _inst_3 _inst_4 e he) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))))) (QuotientGroup.mk'.{u1} G _inst_1 G' _inst_3) x)) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : H) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))) (MonoidHom.monoidHomClass.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))) (QuotientGroup.mk'.{u2} H _inst_2 H' _inst_4) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => H) _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))))) e x))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (G' : Subgroup.{u1} G _inst_1) (H' : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] [_inst_4 : Subgroup.Normal.{u2} H _inst_2 H'] (e : MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (he : Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 (MonoidHomClass.toMonoidHom.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.instMonoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) e) G') H') (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (fun (a : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') a) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))))) (QuotientGroup.mk'.{u1} G _inst_1 G' _inst_3) x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))))) (QuotientGroup.congr.{u1, u2} G _inst_1 H _inst_2 G' H' _inst_3 _inst_4 e he) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3)))) (MonoidHom.monoidHomClass.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))))) (QuotientGroup.mk'.{u1} G _inst_1 G' _inst_3) x)) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : H) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))) (MonoidHom.monoidHomClass.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))) (QuotientGroup.mk'.{u2} H _inst_2 H' _inst_4) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => H) _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))))) e x))
 Case conversion may be inaccurate. Consider using '#align quotient_group.congr_mk' QuotientGroup.congr_mk'ₓ'. -/
 theorem congr_mk' (e : G ≃* H) (he : G'.map ↑e = H') (x) :
     congr G' H' e he (mk' G' x) = mk' H' (e x) :=
@@ -500,7 +500,7 @@ theorem congr_mk' (e : G ≃* H) (he : G'.map ↑e = H') (x) :
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (G' : Subgroup.{u1} G _inst_1) (H' : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] [_inst_4 : Subgroup.Normal.{u2} H _inst_2 H'] (e : MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (he : Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u2) (succ u1)} a b] => self.0) (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHom.hasCoeT.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.monoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.mulEquivClass.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))))))) e) G') H') (x : G), Eq.{succ u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (fun (_x : MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H')) (MulEquiv.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toHasMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (QuotientGroup.congr.{u1, u2} G _inst_1 H _inst_2 G' H' _inst_3 _inst_4 e he) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) G') (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 G'))) x)) (coeFn.{succ u2, succ u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (fun (_x : MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) => H -> (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H')) (MonoidHom.hasCoeToFun.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (QuotientGroup.mk'.{u2} H _inst_2 H' _inst_4) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (fun (_x : MulEquiv.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) => G -> H) (MulEquiv.hasCoeToFun.{u1, u2} G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) e x))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (G' : Subgroup.{u1} G _inst_1) (H' : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] [_inst_4 : Subgroup.Normal.{u2} H _inst_2 H'] (e : MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (he : Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 (MonoidHomClass.toMonoidHom.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.instMonoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) e) G') H') (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.mk.{u1} G _inst_1 G' x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))))) (QuotientGroup.congr.{u1, u2} G _inst_1 H _inst_2 G' H' _inst_3 _inst_4 e he) (QuotientGroup.mk.{u1} G _inst_1 G' x)) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : H) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))) (MonoidHom.monoidHomClass.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))) (QuotientGroup.mk'.{u2} H _inst_2 H' _inst_4) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => H) _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))))) e x))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (G' : Subgroup.{u1} G _inst_1) (H' : Subgroup.{u2} H _inst_2) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 G'] [_inst_4 : Subgroup.Normal.{u2} H _inst_2 H'] (e : MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (he : Eq.{succ u2} (Subgroup.{u2} H _inst_2) (Subgroup.map.{u1, u2} G _inst_1 H _inst_2 (MonoidHomClass.toMonoidHom.{u1, u2, max u1 u2} G H (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquivClass.instMonoidHomClass.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) e) G') H') (x : G), Eq.{succ u2} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.mk.{u1} G _inst_1 G' x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) G') (QuotientGroup.Quotient.group.{u1} G _inst_1 G' _inst_3))))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))))) (QuotientGroup.congr.{u1, u2} G _inst_1 H _inst_2 G' H' _inst_3 _inst_4 e he) (QuotientGroup.mk.{u1} G _inst_1 G' x)) (FunLike.coe.{succ u2, succ u2, succ u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : H) => HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') _x) (MulHomClass.toFunLike.{u2, u2, u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulOneClass.toMul.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) (MonoidHomClass.toMulHomClass.{u2, u2, u2} (MonoidHom.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))) H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4)))) (MonoidHom.monoidHomClass.{u2, u2} H (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Monoid.toMulOneClass.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (DivInvMonoid.toMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (Group.toDivInvMonoid.{u2} (HasQuotient.Quotient.{u2, u2} H (Subgroup.{u2} H _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u2} H _inst_2) H') (QuotientGroup.Quotient.group.{u2} H _inst_2 H' _inst_4))))))) (QuotientGroup.mk'.{u2} H _inst_2 H' _inst_4) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => H) _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulEquivClass.toEquivLike.{max u1 u2, u1, u2} (MulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u2} G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))))) e x))
 Case conversion may be inaccurate. Consider using '#align quotient_group.congr_apply QuotientGroup.congr_applyₓ'. -/
 @[simp]
 theorem congr_apply (e : G ≃* H) (he : G'.map ↑e = H') (x : G) :
@@ -553,7 +553,7 @@ def kerLift : G ⧸ ker φ →* H :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : G), Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) -> H) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))) g)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ g)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
 Case conversion may be inaccurate. Consider using '#align quotient_group.ker_lift_mk QuotientGroup.kerLift_mkₓ'. -/
 @[simp, to_additive]
 theorem kerLift_mk (g : G) : (kerLift φ) g = φ g :=
@@ -565,7 +565,7 @@ theorem kerLift_mk (g : G) : (kerLift φ) g = φ g :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : G), Eq.{succ u2} H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) -> H) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ g)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (g : G), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ) (QuotientGroup.mk.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) g)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ g)
 Case conversion may be inaccurate. Consider using '#align quotient_group.ker_lift_mk' QuotientGroup.kerLift_mk'ₓ'. -/
 @[simp, to_additive]
 theorem kerLift_mk' (g : G) : (kerLift φ) (mk g) = φ g :=
@@ -577,7 +577,7 @@ theorem kerLift_mk' (g : G) : (kerLift φ) (mk g) = φ g :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Injective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) -> H) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Con.mulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (QuotientGroup.con.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.kerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Injective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Injective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) (QuotientGroup.kerLift.{u1, u2} G _inst_1 H _inst_2 φ))
 Case conversion may be inaccurate. Consider using '#align quotient_group.ker_lift_injective QuotientGroup.kerLift_injectiveₓ'. -/
 @[to_additive]
 theorem kerLift_injective : Injective (kerLift φ) := fun a b =>
@@ -605,7 +605,7 @@ def rangeKerLift : G ⧸ ker φ →* φ.range :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Injective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.rangeKerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))))) (Monoid.toMulOneClass.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (DivInvMonoid.toMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Group.toDivInvMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Subgroup.toGroup.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.rangeKerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))))) (Monoid.toMulOneClass.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (DivInvMonoid.toMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Group.toDivInvMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Subgroup.toGroup.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) -> (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.rangeKerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))))) (Monoid.toMulOneClass.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (DivInvMonoid.toMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Group.toDivInvMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Subgroup.toGroup.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (QuotientGroup.rangeKerLift.{u1, u2} G _inst_1 H _inst_2 φ))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Injective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (QuotientGroup.rangeKerLift.{u1, u2} G _inst_1 H _inst_2 φ))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Injective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (QuotientGroup.rangeKerLift.{u1, u2} G _inst_1 H _inst_2 φ))
 Case conversion may be inaccurate. Consider using '#align quotient_group.range_ker_lift_injective QuotientGroup.rangeKerLift_injectiveₓ'. -/
 @[to_additive]
 theorem rangeKerLift_injective : Injective (rangeKerLift φ) := fun a b =>
@@ -620,7 +620,7 @@ theorem rangeKerLift_injective : Injective (rangeKerLift φ) := fun a b =>
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Surjective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.rangeKerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))))) (Monoid.toMulOneClass.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (DivInvMonoid.toMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Group.toDivInvMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Subgroup.toGroup.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (fun (_x : MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.rangeKerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))))) (Monoid.toMulOneClass.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (DivInvMonoid.toMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Group.toDivInvMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Subgroup.toGroup.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) -> (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MonoidHom.hasCoeToFun.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.rangeKerLift._proof_1.{u1, u2} G _inst_1 H _inst_2 φ))))) (Monoid.toMulOneClass.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (DivInvMonoid.toMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Group.toDivInvMonoid.{u2} (coeSort.{succ u2, succ (succ u2)} (Subgroup.{u2} H _inst_2) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.setLike.{u2} H _inst_2)) (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)) (Subgroup.toGroup.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (QuotientGroup.rangeKerLift.{u1, u2} G _inst_1 H _inst_2 φ))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Surjective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (QuotientGroup.rangeKerLift.{u1, u2} G _inst_1 H _inst_2 φ))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), Function.Surjective.{succ u1, succ u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) => Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (MonoidHom.monoidHomClass.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Subtype.{succ u2} H (fun (x : H) => Membership.mem.{u2, u2} H (Subgroup.{u2} H _inst_2) (SetLike.instMembership.{u2, u2} (Subgroup.{u2} H _inst_2) H (Subgroup.instSetLikeSubgroup.{u2} H _inst_2)) x (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ))))) (Submonoid.toMulOneClass.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (Subgroup.toSubmonoid.{u2} H _inst_2 (MonoidHom.range.{u1, u2} G _inst_1 H _inst_2 φ)))))) (QuotientGroup.rangeKerLift.{u1, u2} G _inst_1 H _inst_2 φ))
 Case conversion may be inaccurate. Consider using '#align quotient_group.range_ker_lift_surjective QuotientGroup.rangeKerLift_surjectiveₓ'. -/
 @[to_additive]
 theorem rangeKerLift_surjective : Surjective (rangeKerLift φ) :=
@@ -650,7 +650,7 @@ noncomputable def quotientKerEquivRange : G ⧸ ker φ ≃* range φ :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (ψ : H -> G), (Function.RightInverse.{succ u1, succ u2} G H ψ (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ)) -> (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.quotientKerEquivOfRightInverse._proof_1.{u1, u2} G _inst_1 H _inst_2 φ)))))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (ψ : H -> G), (Function.RightInverse.{succ u1, succ u2} G H ψ (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ)) -> (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (ψ : H -> G), (Function.RightInverse.{succ u1, succ u2} G H ψ (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ)) -> (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_ker_equiv_of_right_inverse QuotientGroup.quotientKerEquivOfRightInverseₓ'. -/
 /-- The canonical isomorphism `G/(ker φ) ≃* H` induced by a homomorphism `φ : G →* H`
 with a right inverse `ψ : H → G`. -/
@@ -683,7 +683,7 @@ def quotientBot : G ⧸ (⊥ : Subgroup G) ≃* G :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), (Function.Surjective.{succ u1, succ u2} G H (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) φ)) -> (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (QuotientGroup.quotientKerEquivOfRightInverse._proof_1.{u1, u2} G _inst_1 H _inst_2 φ)))))) (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), (Function.Surjective.{succ u1, succ u2} G H (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ)) -> (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {H : Type.{u2}} [_inst_2 : Group.{u2} H] (φ : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))), (Function.Surjective.{succ u1, succ u2} G H (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))) φ)) -> (MulEquiv.{u1, u2} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) H (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)) (QuotientGroup.Quotient.group.{u1} G _inst_1 (MonoidHom.ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ) (MonoidHom.normal_ker.{u1, u2} G _inst_1 H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2))) φ)))))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_ker_equiv_of_surjective QuotientGroup.quotientKerEquivOfSurjectiveₓ'. -/
 /-- The canonical isomorphism `G/(ker φ) ≃* H` induced by a surjection `φ : G →* H`.
 
@@ -746,7 +746,7 @@ def quotientMapSubgroupOfOfLe {A' A B' B : Subgroup G} [hAN : (A'.subgroupOf A).
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {A' : Subgroup.{u1} G _inst_1} {A : Subgroup.{u1} G _inst_1} {B' : Subgroup.{u1} G _inst_1} {B : Subgroup.{u1} G _inst_1} [hAN : Subgroup.Normal.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)] [hBN : Subgroup.Normal.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)] (h' : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) A' B') (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) A B) (x : coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) => (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) -> (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B))) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (QuotientGroup.quotientMapSubgroupOfOfLe.{u1} G _inst_1 A' A B' B hAN hBN h' h) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)))) x)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)))) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)))) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B))))) (fun (_x : MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)))) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B))))) => (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) -> (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B)) (MonoidHom.hasCoeToFun.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) A) (Subgroup.toGroup.{u1} G _inst_1 A)))) (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) B) (Subgroup.toGroup.{u1} G _inst_1 B))))) (Subgroup.inclusion.{u1} G _inst_1 A B h) x))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {A' : Subgroup.{u1} G _inst_1} {A : Subgroup.{u1} G _inst_1} {B' : Subgroup.{u1} G _inst_1} {B : Subgroup.{u1} G _inst_1} [hAN : Subgroup.Normal.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)] [hBN : Subgroup.Normal.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)] (h' : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) A' B') (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) A B) (x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) => HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.mk.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (fun (_x : HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) => HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))))) (QuotientGroup.quotientMapSubgroupOfOfLe.{u1} G _inst_1 A' A B' B hAN hBN h' h) (QuotientGroup.mk.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) x)) (QuotientGroup.mk.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) => Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) x) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (fun (_x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) => Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A))) (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B)) (MonoidHom.monoidHomClass.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))))) (Subgroup.inclusion.{u1} G _inst_1 A B h) x))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {A' : Subgroup.{u1} G _inst_1} {A : Subgroup.{u1} G _inst_1} {B' : Subgroup.{u1} G _inst_1} {B : Subgroup.{u1} G _inst_1} [hAN : Subgroup.Normal.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)] [hBN : Subgroup.Normal.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)] (h' : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) A' B') (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) A B) (x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) => HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.mk.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (fun (_x : HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) => HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A)) (Subgroup.subgroupOf.{u1} G _inst_1 A' A)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) hAN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B)) (Subgroup.subgroupOf.{u1} G _inst_1 B' B)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) hBN))))))) (QuotientGroup.quotientMapSubgroupOfOfLe.{u1} G _inst_1 A' A B' B hAN hBN h' h) (QuotientGroup.mk.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subgroup.toGroup.{u1} G _inst_1 A) (Subgroup.subgroupOf.{u1} G _inst_1 A' A) x)) (QuotientGroup.mk.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) => Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) x) (Subgroup.toGroup.{u1} G _inst_1 B) (Subgroup.subgroupOf.{u1} G _inst_1 B' B) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (fun (_x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) => Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A))) (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B)) (MonoidHom.monoidHomClass.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x A)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x B)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 A)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Subgroup.toSubmonoid.{u1} G _inst_1 B))))) (Subgroup.inclusion.{u1} G _inst_1 A B h) x))
 Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_map_subgroup_of_of_le_coe QuotientGroup.quotientMapSubgroupOfOfLe_mkₓ'. -/
 @[simp, to_additive]
 theorem quotientMapSubgroupOfOfLe_mk {A' A B' B : Subgroup G} [hAN : (A'.subgroupOf A).Normal]
@@ -823,7 +823,7 @@ theorem homQuotientZPowOfHom_comp :
 lean 3 declaration is
   forall {A : Type.{u1}} {B : Type.{u1}} [_inst_3 : CommGroup.{u1} A] [_inst_4 : CommGroup.{u1} B] (f : MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (g : MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (n : Int), (Function.RightInverse.{succ u1, succ u1} A B (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (fun (_x : MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) => B -> A) (MonoidHom.hasCoeToFun.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) g) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (fun (_x : MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) => A -> B) (MonoidHom.hasCoeToFun.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) f)) -> (Eq.{succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (QuotientGroup.homQuotientZPowOfHom._proof_1.{u1} B _inst_4 n))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (QuotientGroup.homQuotientZPowOfHom._proof_2.{u1} B _inst_4 n)))))) (MonoidHom.comp.{u1, u1, u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (QuotientGroup.homQuotientZPowOfHom._proof_1.{u1} B _inst_4 n))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.Subgroup.hasQuotient.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (QuotientGroup.Quotient.group.{u1} A (CommGroup.toGroup.{u1} A _inst_3) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)) (QuotientGroup.homQuotientZPowOfHom._proof_1.{u1} A _inst_3 n))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (QuotientGroup.homQuotientZPowOfHom._proof_2.{u1} B _inst_4 n))))) (QuotientGroup.homQuotientZPowOfHom.{u1} A B _inst_3 _inst_4 f n) (QuotientGroup.homQuotientZPowOfHom.{u1} B A _inst_4 _inst_3 g n)) (MonoidHom.id.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.Subgroup.hasQuotient.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (QuotientGroup.homQuotientZPowOfHom._proof_1.{u1} B _inst_4 n)))))))
 but is expected to have type
-  forall {A : Type.{u1}} {B : Type.{u1}} [_inst_3 : CommGroup.{u1} A] [_inst_4 : CommGroup.{u1} B] (f : MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (g : MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (n : Int), (Function.RightInverse.{succ u1, succ u1} A B (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : B) => A) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) B A (MulOneClass.toMul.{u1} B (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (MulOneClass.toMul.{u1} A (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (MonoidHom.monoidHomClass.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))))) g) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : A) => B) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) A B (MulOneClass.toMul.{u1} A (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (MulOneClass.toMul.{u1} B (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (MonoidHom.monoidHomClass.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))))) f)) -> (Eq.{succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)))))))) (MonoidHom.comp.{u1, u1, u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (QuotientGroup.Quotient.group.{u1} A (CommGroup.toGroup.{u1} A _inst_3) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)) (Subgroup.normal_of_comm.{u1} A _inst_3 (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))))))) (QuotientGroup.homQuotientZPowOfHom.{u1} A B _inst_3 _inst_4 f n) (QuotientGroup.homQuotientZPowOfHom.{u1} B A _inst_4 _inst_3 g n)) (MonoidHom.id.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)))))))))
+  forall {A : Type.{u1}} {B : Type.{u1}} [_inst_3 : CommGroup.{u1} A] [_inst_4 : CommGroup.{u1} B] (f : MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (g : MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (n : Int), (Function.RightInverse.{succ u1, succ u1} A B (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : B) => A) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) B A (MulOneClass.toMul.{u1} B (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (MulOneClass.toMul.{u1} A (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (MonoidHom.monoidHomClass.{u1, u1} B A (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))))) g) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : A) => B) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) A B (MulOneClass.toMul.{u1} A (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3))))) (MulOneClass.toMul.{u1} B (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))) A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4)))) (MonoidHom.monoidHomClass.{u1, u1} A B (Monoid.toMulOneClass.{u1} A (DivInvMonoid.toMonoid.{u1} A (Group.toDivInvMonoid.{u1} A (CommGroup.toGroup.{u1} A _inst_3)))) (Monoid.toMulOneClass.{u1} B (DivInvMonoid.toMonoid.{u1} B (Group.toDivInvMonoid.{u1} B (CommGroup.toGroup.{u1} B _inst_4))))))) f)) -> (Eq.{succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)))))))) (MonoidHom.comp.{u1, u1, u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} A (Subgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (QuotientGroup.instHasQuotientSubgroup.{u1} A (CommGroup.toGroup.{u1} A _inst_3)) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))) (QuotientGroup.Quotient.group.{u1} A (CommGroup.toGroup.{u1} A _inst_3) (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n)) (Subgroup.normal_of_comm.{u1} A _inst_3 (MonoidHom.range.{u1, u1} A (CommGroup.toGroup.{u1} A _inst_3) A (CommGroup.toGroup.{u1} A _inst_3) (zpowGroupHom.{u1} A (CommGroup.toDivisionCommMonoid.{u1} A _inst_3) n))))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))))))) (QuotientGroup.homQuotientZPowOfHom.{u1} A B _inst_3 _inst_4 f n) (QuotientGroup.homQuotientZPowOfHom.{u1} B A _inst_4 _inst_3 g n)) (MonoidHom.id.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} B (Subgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (QuotientGroup.instHasQuotientSubgroup.{u1} B (CommGroup.toGroup.{u1} B _inst_4)) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n))) (QuotientGroup.Quotient.group.{u1} B (CommGroup.toGroup.{u1} B _inst_4) (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)) (Subgroup.normal_of_comm.{u1} B _inst_4 (MonoidHom.range.{u1, u1} B (CommGroup.toGroup.{u1} B _inst_4) B (CommGroup.toGroup.{u1} B _inst_4) (zpowGroupHom.{u1} B (CommGroup.toDivisionCommMonoid.{u1} B _inst_4) n)))))))))
 Case conversion may be inaccurate. Consider using '#align quotient_group.hom_quotient_zpow_of_hom_comp_of_right_inverse QuotientGroup.homQuotientZPowOfHom_comp_of_rightInverseₓ'. -/
 @[simp, to_additive]
 theorem homQuotientZPowOfHom_comp_of_rightInverse (i : Function.RightInverse g f) :
@@ -971,7 +971,7 @@ def quotientQuotientEquivQuotientAux : (G ⧸ N) ⧸ M.map (mk' N) →* G ⧸ M
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M] (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N M) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) => (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M)) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (QuotientGroup.quotientQuotientEquivQuotientAux.{u1} G _inst_1 N nN M nM h) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasLiftT.mk.{succ u1, succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (CoeTCₓ.coe.{succ u1, succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)))) x)) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) => (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M)) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 M nM (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) x)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M] (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N M) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (fun (_x : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM)))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))) (QuotientGroup.quotientQuotientEquivQuotientAux.{u1} G _inst_1 N nN M nM h) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 M nM (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) x)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M] (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N M) (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (fun (_x : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM)))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))) (QuotientGroup.quotientQuotientEquivQuotientAux.{u1} G _inst_1 N nN M nM h) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (fun (_x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))) (QuotientGroup.map.{u1, u1} G _inst_1 N nN G _inst_1 M nM (MonoidHom.id.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))) h) x)
 Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_quotient_equiv_quotient_aux_coe QuotientGroup.quotientQuotientEquivQuotientAux_mkₓ'. -/
 @[simp, to_additive]
 theorem quotientQuotientEquivQuotientAux_mk (x : G ⧸ N) :
@@ -984,7 +984,7 @@ theorem quotientQuotientEquivQuotientAux_mk (x : G ⧸ N) :
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M] (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) N M) (x : G), Eq.{succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (fun (_x : MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) => (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) -> (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M)) (MonoidHom.hasCoeToFun.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Con.mulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)))) (QuotientGroup.con.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (QuotientGroup.quotientQuotientEquivQuotientAux.{u1} G _inst_1 N nN M nM h) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasLiftT.mk.{succ u1, succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (CoeTCₓ.coe.{succ u1, succ u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.Subgroup.hasQuotient.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) N) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 N))) x))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (HasLiftT.mk.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (CoeTCₓ.coe.{succ u1, succ u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) M) (QuotientGroup.HasQuotient.Quotient.hasCoeT.{u1} G _inst_1 M))) x)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M] (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N M) (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.mk.{u1} G _inst_1 N x))) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (fun (_x : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM)))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))) (QuotientGroup.quotientQuotientEquivQuotientAux.{u1} G _inst_1 N nN M nM h) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.mk.{u1} G _inst_1 N x))) (QuotientGroup.mk.{u1} G _inst_1 M x)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (N : Subgroup.{u1} G _inst_1) [nN : Subgroup.Normal.{u1} G _inst_1 N] (M : Subgroup.{u1} G _inst_1) [nM : Subgroup.Normal.{u1} G _inst_1 M] (h : LE.le.{u1} (Subgroup.{u1} G _inst_1) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_1) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_1) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) N M) (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.mk.{u1} G _inst_1 N x))) (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (fun (_x : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) => HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM)))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))) (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM)))) (MonoidHom.monoidHomClass.{u1, u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (Subgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (QuotientGroup.instHasQuotientSubgroup.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN)) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M)) (QuotientGroup.Quotient.group.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.map_normal.{u1} G _inst_1 N nN M nM))))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) M) (QuotientGroup.Quotient.group.{u1} G _inst_1 M nM))))))) (QuotientGroup.quotientQuotientEquivQuotientAux.{u1} G _inst_1 N nN M nM h) (QuotientGroup.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (Subgroup.map.{u1, u1} G _inst_1 (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) N) (QuotientGroup.Quotient.group.{u1} G _inst_1 N nN) (QuotientGroup.mk'.{u1} G _inst_1 N nN) M) (QuotientGroup.mk.{u1} G _inst_1 N x))) (QuotientGroup.mk.{u1} G _inst_1 M x)
 Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_quotient_equiv_quotient_aux_coe_coe QuotientGroup.quotientQuotientEquivQuotientAux_mk_mkₓ'. -/
 @[to_additive]
 theorem quotientQuotientEquivQuotientAux_mk_mk (x : G) :
Diff
@@ -903,9 +903,9 @@ open _Root_.Subgroup
 
 /- warning: quotient_group.quotient_inf_equiv_prod_normal_quotient -> QuotientGroup.quotientInfEquivProdNormalQuotient is a dubious translation:
 lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (H : Subgroup.{u1} G _inst_1) (N : Subgroup.{u1} G _inst_1) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 N], MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H) (Subgroup.subgroupOf.{u1} G _inst_1 N H) (Subgroup.normal_subgroupOf.{u1} G _inst_1 H N _inst_3)))))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.subgroupOf.{u1} G _inst_1 N (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (QuotientGroup.quotientInfEquivProdNormalQuotient._proof_1.{u1} G _inst_1 H N _inst_3))))))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (H : Subgroup.{u1} G _inst_1) (N : Subgroup.{u1} G _inst_1) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 N], MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subgroup.toGroup.{u1} G _inst_1 H) (Subgroup.subgroupOf.{u1} G _inst_1 N H) (Subgroup.normal_subgroupOf.{u1} G _inst_1 H N _inst_3)))))) (MulOneClass.toHasMul.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (QuotientGroup.Subgroup.hasQuotient.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N))) (QuotientGroup.Quotient.group.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (Subgroup.subgroupOf.{u1} G _inst_1 N (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.completeLattice.{u1} G _inst_1))))) H N)) (QuotientGroup.quotientInfEquivProdNormalQuotient._proof_1.{u1} G _inst_1 H N _inst_3))))))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (H : Subgroup.{u1} G _inst_1) (N : Subgroup.{u1} G _inst_1) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 N], MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H) (Subgroup.subgroupOf.{u1} G _inst_1 N H) (Subgroup.normal_subgroupOf.{u1} G _inst_1 H N _inst_3)))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N)) (Subgroup.subgroupOf.{u1} G _inst_1 N (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N)) (Subgroup.normal_subgroupOf.{u1} G _inst_1 (HasSup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toHasSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N) N _inst_3))))))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] (H : Subgroup.{u1} G _inst_1) (N : Subgroup.{u1} G _inst_1) [_inst_3 : Subgroup.Normal.{u1} G _inst_1 N], MulEquiv.{u1, u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H)) (Subgroup.subgroupOf.{u1} G _inst_1 N H)) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (Subgroup.toGroup.{u1} G _inst_1 H) (Subgroup.subgroupOf.{u1} G _inst_1 N H) (Subgroup.normal_subgroupOf.{u1} G _inst_1 H N _inst_3)))))) (MulOneClass.toMul.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (QuotientGroup.instHasQuotientSubgroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.subgroupOf.{u1} G _inst_1 N (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (QuotientGroup.Quotient.group.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N))) (Subgroup.toGroup.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N)) (Subgroup.subgroupOf.{u1} G _inst_1 N (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N)) (Subgroup.normal_subgroupOf.{u1} G _inst_1 (Sup.sup.{u1} (Subgroup.{u1} G _inst_1) (SemilatticeSup.toSup.{u1} (Subgroup.{u1} G _inst_1) (Lattice.toSemilatticeSup.{u1} (Subgroup.{u1} G _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Subgroup.{u1} G _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Subgroup.{u1} G _inst_1) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_1))))) H N) N _inst_3))))))
 Case conversion may be inaccurate. Consider using '#align quotient_group.quotient_inf_equiv_prod_normal_quotient QuotientGroup.quotientInfEquivProdNormalQuotientₓ'. -/
 /-- **Noether's second isomorphism theorem**: given two subgroups `H` and `N` of a group `G`, where
 `N` is normal, defines an isomorphism between `H/(H ∩ N)` and `(HN)/N`. -/

Changes in mathlib4

mathlib3
mathlib4
refactor: typeclasses for measures on quotient spaces and groups (#7506)

We introduce a new typeclass QuotientMeasureEqMeasurePreimage which expresses a relationship between a measure on a space and a measure on its quotient under a discrete group action. Namely, the volume of a measurable set in the quotient is equal to the volume of its preimage, intersected with any fundamental domain.

Our main application is in the context of a discrete normal subgroup of a topological group acting on the group itself, so as to compare Haar measures on a group and its quotient. Before this typeclass, you could have Haar measure upstairs and downstairs and you would have ugly scaling factors if you wanted to compare the two. This typeclass more accurately reflects what is needed in order to have a clear relationship between the upstairs and downstairs measures.

Two big theorems (proved under various technical assumptions, like finiteness of the volume - which shouldn't be necessary):

(1) if you're Haar upstairs and satisfy QuotientMeasureEqMeasurePreimage, then you're Haar downstairs.

And conversely (2): if you're Haar upstairs and downstairs, and scale correctly on a single measurable set, then you satisfy QuotientMeasureEqMeasurePreimage.

Contains the forward-port of https://github.com/leanprover-community/mathlib/pull/18863

Co-authored-by: Heather Macbeth <25316162+hrmacbeth@users.noreply.github.com>

Co-authored-by: Heather Macbeth <25316162+hrmacbeth@users.noreply.github.com>

Diff
@@ -103,6 +103,15 @@ theorem mk'_eq_mk' {x y : G} : mk' N x = mk' N y ↔ ∃ z ∈ N, x * z = y :=
 #align quotient_group.mk'_eq_mk' QuotientGroup.mk'_eq_mk'
 #align quotient_add_group.mk'_eq_mk' QuotientAddGroup.mk'_eq_mk'
 
+open scoped Pointwise in
+@[to_additive]
+theorem sound (U : Set (G ⧸ N)) (g : N.op) :
+    g • (mk' N) ⁻¹' U = (mk' N) ⁻¹' U := by
+  ext x
+  simp only [Set.mem_preimage, Set.mem_smul_set_iff_inv_smul_mem]
+  congr! 1
+  exact Quotient.sound ⟨g⁻¹, rfl⟩
+
 /-- Two `MonoidHom`s from a quotient group are equal if their compositions with
 `QuotientGroup.mk'` are equal.
 
chore: Rename mul-div cancellation lemmas (#11530)

Lemma names around cancellation of multiplication and division are a mess.

This PR renames a handful of them according to the following table (each big row contains the multiplicative statement, then the three rows contain the GroupWithZero lemma name, the Group lemma, the AddGroup lemma name).

| Statement | New name | Old name | |

Diff
@@ -304,7 +304,7 @@ lemma preimage_image_coe (s : Set G) : ((↑) : G → Q) ⁻¹' ((↑) '' s) = N
   ext a
   constructor
   · rintro ⟨b, hb, h⟩
-    refine ⟨a / b, (QuotientGroup.eq_one_iff _).1 ?_, b, hb, div_mul_cancel' _ _⟩
+    refine ⟨a / b, (QuotientGroup.eq_one_iff _).1 ?_, b, hb, div_mul_cancel _ _⟩
     simp only [h, QuotientGroup.mk_div, div_self']
   · rintro ⟨a, ha, b, hb, rfl⟩
     refine ⟨b, hb, ?_⟩
chore(*): remove empty lines between variable statements (#11418)

Empty lines were removed by executing the following Python script twice

import os
import re


# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
  for filename in files:
    if filename.endswith('.lean'):
      file_path = os.path.join(dir_path, filename)

      # Open the file and read its contents
      with open(file_path, 'r') as file:
        content = file.read()

      # Use a regular expression to replace sequences of "variable" lines separated by empty lines
      # with sequences without empty lines
      modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -526,7 +526,6 @@ def equivQuotientSubgroupOfOfEq {A' A B' B : Subgroup G} [hAN : (A'.subgroupOf A
 section ZPow
 
 variable {A B C : Type u} [CommGroup A] [CommGroup B] [CommGroup C]
-
 variable (f : A →* B) (g : B →* A) (e : A ≃* B) (d : B ≃* C) (n : ℤ)
 
 /-- The map of quotients by powers of an integer induced by a group homomorphism. -/
@@ -731,7 +730,6 @@ open scoped Classical
 open QuotientGroup Subgroup
 
 variable {F G H : Type u} [Group F] [Group G] [Group H] [Fintype F] [Fintype H]
-
 variable (f : F →* G) (g : G →* H)
 
 /-- If `F` and `H` are finite such that `ker(G →* H) ≤ im(F →* G)`, then `G` is finite. -/
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
@@ -726,7 +726,7 @@ end QuotientGroup
 
 namespace Group
 
-open Classical
+open scoped Classical
 
 open QuotientGroup Subgroup
 
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -134,7 +134,7 @@ theorem ker_mk' : MonoidHom.ker (QuotientGroup.mk' N : G →* G ⧸ N) = N :=
   Subgroup.ext eq_one_iff
 #align quotient_group.ker_mk QuotientGroup.ker_mk'
 #align quotient_add_group.ker_mk QuotientAddGroup.ker_mk'
--- porting note: I think this is misnamed without the prime
+-- Porting note: I think this is misnamed without the prime
 
 @[to_additive]
 theorem eq_iff_div_mem {N : Subgroup G} [nN : N.Normal] {x y : G} :
@@ -569,7 +569,7 @@ def equivQuotientZPowOfEquiv :
   MonoidHom.toMulEquiv _ _
     (homQuotientZPowOfHom_comp_of_rightInverse (e.symm : B →* A) (e : A →* B) n e.left_inv)
     (homQuotientZPowOfHom_comp_of_rightInverse (e : A →* B) (e.symm : B →* A) n e.right_inv)
-    -- porting note: had to explicitly coerce the `MulEquiv`s to `MonoidHom`s
+    -- Porting note: had to explicitly coerce the `MulEquiv`s to `MonoidHom`s
 #align quotient_group.equiv_quotient_zpow_of_equiv QuotientGroup.equivQuotientZPowOfEquiv
 #align quotient_add_group.equiv_quotient_zsmul_of_equiv QuotientAddGroup.equivQuotientZSMulOfEquiv
 
@@ -626,7 +626,7 @@ noncomputable def quotientInfEquivProdNormalQuotient (H N : Subgroup G) [N.Norma
       use ⟨h, hh⟩
       let _ : Setoid ↑(H ⊔ N) :=
         (@leftRel ↑(H ⊔ N) (H ⊔ N : Subgroup G).toGroup (N.subgroupOf (H ⊔ N)))
-      -- porting note: Lean couldn't find this automatically
+      -- Porting note: Lean couldn't find this automatically
       refine Quotient.eq.mpr ?_
       change Setoid.r _ _
       rw [leftRel_apply]
chore: prepare Lean version bump with explicit simp (#10999)

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

Diff
@@ -632,7 +632,8 @@ noncomputable def quotientInfEquivProdNormalQuotient (H N : Subgroup G) [N.Norma
       rw [leftRel_apply]
       change h⁻¹ * (h * n) ∈ N
       rwa [← mul_assoc, inv_mul_self, one_mul]
-  (quotientMulEquivOfEq (by simp [← comap_ker])).trans (quotientKerEquivOfSurjective φ φ_surjective)
+  (quotientMulEquivOfEq (by simp [φ, ← comap_ker])).trans
+    (quotientKerEquivOfSurjective φ φ_surjective)
 #align quotient_group.quotient_inf_equiv_prod_normal_quotient QuotientGroup.quotientInfEquivProdNormalQuotient
 #align quotient_add_group.quotient_inf_equiv_sum_normal_quotient QuotientAddGroup.quotientInfEquivSumNormalQuotient
 
chore(*): rename FunLike to DFunLike (#9785)

This prepares for the introduction of a non-dependent synonym of FunLike, which helps a lot with keeping #8386 readable.

This is entirely search-and-replace in 680197f combined with manual fixes in 4145626, e900597 and b8428f8. The commands that generated this change:

sed -i 's/\bFunLike\b/DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoFunLike\b/toDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/import Mathlib.Data.DFunLike/import Mathlib.Data.FunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bHom_FunLike\b/Hom_DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean     
sed -i 's/\binstFunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bfunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoo many metavariables to apply `fun_like.has_coe_to_fun`/too many metavariables to apply `DFunLike.hasCoeToFun`/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean

Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>

Diff
@@ -112,7 +112,7 @@ See note [partially-applied ext lemmas]. -/
 
  See note [partially-applied ext lemmas]. "]
 theorem monoidHom_ext ⦃f g : G ⧸ N →* M⦄ (h : f.comp (mk' N) = g.comp (mk' N)) : f = g :=
-  MonoidHom.ext fun x => QuotientGroup.induction_on x <| (FunLike.congr_fun h : _)
+  MonoidHom.ext fun x => QuotientGroup.induction_on x <| (DFunLike.congr_fun h : _)
 #align quotient_group.monoid_hom_ext QuotientGroup.monoidHom_ext
 #align quotient_add_group.add_monoid_hom_ext QuotientAddGroup.addMonoidHom_ext
 
@@ -127,7 +127,7 @@ theorem eq_one_iff {N : Subgroup G} [nN : N.Normal] (x : G) : (x : G ⧸ N) = 1
 theorem ker_le_range_iff {I : Type w} [Group I] (f : G →* H) [f.range.Normal] (g : H →* I) :
     g.ker ≤ f.range ↔ (mk' f.range).comp g.ker.subtype = 1 :=
   ⟨fun h => MonoidHom.ext fun ⟨_, hx⟩ => (eq_one_iff _).mpr <| h hx,
-    fun h x hx => (eq_one_iff _).mp <| by exact FunLike.congr_fun h ⟨x, hx⟩⟩
+    fun h x hx => (eq_one_iff _).mp <| by exact DFunLike.congr_fun h ⟨x, hx⟩⟩
 
 @[to_additive (attr := simp)]
 theorem ker_mk' : MonoidHom.ker (QuotientGroup.mk' N : G →* G ⧸ N) = N :=
chore(*): replace $ with <| (#9319)

See Zulip thread for the discussion.

Diff
@@ -297,7 +297,7 @@ section Pointwise
 open Set
 
 @[to_additive (attr := simp)] lemma image_coe : ((↑) : G → Q) '' N = 1 :=
-  congr_arg ((↑) : Subgroup Q → Set Q) $ map_mk'_self N
+  congr_arg ((↑) : Subgroup Q → Set Q) <| map_mk'_self N
 
 @[to_additive]
 lemma preimage_image_coe (s : Set G) : ((↑) : G → Q) ⁻¹' ((↑) '' s) = N * s := by
refactor(*): change definition of Set.image2 etc (#9275)
  • Redefine Set.image2 to use ∃ a ∈ s, ∃ b ∈ t, f a b = c instead of ∃ a b, a ∈ s ∧ b ∈ t ∧ f a b = c.
  • Redefine Set.seq as Set.image2. The new definition is equal to the old one but rw [Set.seq] gives a different result.
  • Redefine Filter.map₂ to use ∃ u ∈ f, ∃ v ∈ g, image2 m u v ⊆ s instead of ∃ u v, u ∈ f ∧ v ∈ g ∧ ...
  • Update lemmas like Set.mem_image2, Finset.mem_image₂, Set.mem_mul, Finset.mem_div etc

The two reasons to make the change are:

  • ∃ a ∈ s, ∃ b ∈ t, _ is a simp-normal form, and
  • it looks a bit nicer.
Diff
@@ -304,9 +304,9 @@ lemma preimage_image_coe (s : Set G) : ((↑) : G → Q) ⁻¹' ((↑) '' s) = N
   ext a
   constructor
   · rintro ⟨b, hb, h⟩
-    refine ⟨a / b, b, (QuotientGroup.eq_one_iff _).1 ?_, hb, div_mul_cancel' _ _⟩
+    refine ⟨a / b, (QuotientGroup.eq_one_iff _).1 ?_, b, hb, div_mul_cancel' _ _⟩
     simp only [h, QuotientGroup.mk_div, div_self']
-  · rintro ⟨a, b, ha, hb, rfl⟩
+  · rintro ⟨a, ha, b, hb, rfl⟩
     refine ⟨b, hb, ?_⟩
     simpa only [QuotientGroup.mk_mul, self_eq_mul_left, QuotientGroup.eq_one_iff]
 
@@ -622,7 +622,7 @@ noncomputable def quotientInfEquivProdNormalQuotient (H N : Subgroup G) [N.Norma
       rintro ⟨y, hy : y ∈ (H ⊔ N)⟩;
       rw [← SetLike.mem_coe] at hy
       rw [mul_normal H N] at hy
-      rcases hy with ⟨h, n, hh, hn, rfl⟩
+      rcases hy with ⟨h, hh, n, hn, rfl⟩
       use ⟨h, hh⟩
       let _ : Setoid ↑(H ⊔ N) :=
         (@leftRel ↑(H ⊔ N) (H ⊔ N : Subgroup G).toGroup (N.subgroupOf (H ⊔ N)))
feat: Stabilizers of sets/finsets (#8924)

Prove a bunch of results about stabilizer G s where Group G, MulAction G α, s : Set α.

Diff
@@ -41,8 +41,8 @@ proves Noether's first and second isomorphism theorems.
 isomorphism theorems, quotient groups
 -/
 
-
 open Function
+open scoped Pointwise
 
 universe u v w x
 
@@ -196,6 +196,8 @@ theorem mk_prod {G ι : Type*} [CommGroup G] (N : Subgroup G) (s : Finset ι) {f
     ((Finset.prod s f : G) : G ⧸ N) = Finset.prod s (fun i => (f i : G ⧸ N)) :=
   map_prod (QuotientGroup.mk' N) _ _
 
+@[to_additive (attr := simp)] lemma map_mk'_self : N.map (mk' N) = ⊥ := by aesop
+
 /-- A group homomorphism `φ : G →* M` with `N ⊆ ker(φ)` descends (i.e. `lift`s) to a
 group homomorphism `G/N →* M`. -/
 @[to_additive "An `AddGroup` homomorphism `φ : G →+ M` with `N ⊆ ker(φ)` descends (i.e. `lift`s)
@@ -291,6 +293,30 @@ theorem map_comp_map {I : Type*} [Group I] (M : Subgroup H) (O : Subgroup I) [M.
 #align quotient_group.map_comp_map QuotientGroup.map_comp_map
 #align quotient_add_group.map_comp_map QuotientAddGroup.map_comp_map
 
+section Pointwise
+open Set
+
+@[to_additive (attr := simp)] lemma image_coe : ((↑) : G → Q) '' N = 1 :=
+  congr_arg ((↑) : Subgroup Q → Set Q) $ map_mk'_self N
+
+@[to_additive]
+lemma preimage_image_coe (s : Set G) : ((↑) : G → Q) ⁻¹' ((↑) '' s) = N * s := by
+  ext a
+  constructor
+  · rintro ⟨b, hb, h⟩
+    refine ⟨a / b, b, (QuotientGroup.eq_one_iff _).1 ?_, hb, div_mul_cancel' _ _⟩
+    simp only [h, QuotientGroup.mk_div, div_self']
+  · rintro ⟨a, b, ha, hb, rfl⟩
+    refine ⟨b, hb, ?_⟩
+    simpa only [QuotientGroup.mk_mul, self_eq_mul_left, QuotientGroup.eq_one_iff]
+
+@[to_additive]
+lemma image_coe_inj {s t : Set G} : ((↑) : G → Q) '' s = ((↑) : G → Q) '' t ↔ ↑N * s = N * t := by
+  simp_rw [← preimage_image_coe]
+  exact QuotientGroup.mk_surjective.preimage_injective.eq_iff.symm
+
+end Pointwise
+
 section congr
 
 variable (G' : Subgroup G) (H' : Subgroup H) [Subgroup.Normal G'] [Subgroup.Normal H']
chore: space after (#8178)

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -594,7 +594,7 @@ noncomputable def quotientInfEquivProdNormalQuotient (H N : Subgroup G) [N.Norma
   have φ_surjective : Surjective φ := fun x =>
     x.inductionOn' <| by
       rintro ⟨y, hy : y ∈ (H ⊔ N)⟩;
-      rw [←SetLike.mem_coe] at hy
+      rw [← SetLike.mem_coe] at hy
       rw [mul_normal H N] at hy
       rcases hy with ⟨h, n, hh, hn, rfl⟩
       use ⟨h, hh⟩
chore: remove many Type _ before the colon (#7718)

We have turned to Type* instead of Type _, but many of them remained in mathlib because the straight replacement did not work. In general, having Type _ before the colon is a code smell, though, as it hides which types should be in the same universe and which shouldn't, and is not very robust.

This PR replaces most of the remaining Type _ before the colon (except those in category theory) by Type* or Type u. This has uncovered a few bugs (where declarations were not as polymorphic as they should be).

I had to increase heartbeats at two places when replacing Type _ by Type*, but I think it's worth it as it's really more robust.

Diff
@@ -192,7 +192,7 @@ theorem mk_zpow (a : G) (n : ℤ) : ((a ^ n : G) : Q) = (a : Q) ^ n :=
 #align quotient_add_group.coe_zsmul QuotientAddGroup.mk_zsmul
 
 @[to_additive (attr := simp)]
-theorem mk_prod {G ι : Type _} [CommGroup G] (N : Subgroup G) (s : Finset ι) {f : ι → G} :
+theorem mk_prod {G ι : Type*} [CommGroup G] (N : Subgroup G) (s : Finset ι) {f : ι → G} :
     ((Finset.prod s f : G) : G ⧸ N) = Finset.prod s (fun i => (f i : G ⧸ N)) :=
   map_prod (QuotientGroup.mk' N) _ _
 
chore(GroupTheory/QuotientGroup): unindent theorem (#7659)

Discovered following this Zulip thread.

Diff
@@ -191,10 +191,10 @@ theorem mk_zpow (a : G) (n : ℤ) : ((a ^ n : G) : Q) = (a : Q) ^ n :=
 #align quotient_group.coe_zpow QuotientGroup.mk_zpow
 #align quotient_add_group.coe_zsmul QuotientAddGroup.mk_zsmul
 
- @[to_additive (attr := simp)]
- theorem mk_prod {G ι : Type _} [CommGroup G] (N : Subgroup G) (s : Finset ι) {f : ι → G} :
-     ((Finset.prod s f : G) : G ⧸ N) = Finset.prod s (fun i => (f i : G ⧸ N)) :=
-   map_prod (QuotientGroup.mk' N) _ _
+@[to_additive (attr := simp)]
+theorem mk_prod {G ι : Type _} [CommGroup G] (N : Subgroup G) (s : Finset ι) {f : ι → G} :
+    ((Finset.prod s f : G) : G ⧸ N) = Finset.prod s (fun i => (f i : G ⧸ N)) :=
+  map_prod (QuotientGroup.mk' N) _ _
 
 /-- A group homomorphism `φ : G →* M` with `N ⊆ ker(φ)` descends (i.e. `lift`s) to a
 group homomorphism `G/N →* M`. -/
chore: cleanup some spaces (#7484)

Purely cosmetic PR.

Diff
@@ -156,37 +156,37 @@ instance Quotient.commGroup {G : Type*} [CommGroup G] (N : Subgroup G) : CommGro
 local notation " Q " => G ⧸ N
 
 @[to_additive (attr := simp)]
-theorem mk_one : ((1 : G) : Q ) = 1 :=
+theorem mk_one : ((1 : G) : Q) = 1 :=
   rfl
 #align quotient_group.coe_one QuotientGroup.mk_one
 #align quotient_add_group.coe_zero QuotientAddGroup.mk_zero
 
 @[to_additive (attr := simp)]
-theorem mk_mul (a b : G) : ((a * b : G) : Q ) = a * b :=
+theorem mk_mul (a b : G) : ((a * b : G) : Q) = a * b :=
   rfl
 #align quotient_group.coe_mul QuotientGroup.mk_mul
 #align quotient_add_group.coe_add QuotientAddGroup.mk_add
 
 @[to_additive (attr := simp)]
-theorem mk_inv (a : G) : ((a⁻¹ : G) : Q ) = (a : Q)⁻¹ :=
+theorem mk_inv (a : G) : ((a⁻¹ : G) : Q) = (a : Q)⁻¹ :=
   rfl
 #align quotient_group.coe_inv QuotientGroup.mk_inv
 #align quotient_add_group.coe_neg QuotientAddGroup.mk_neg
 
 @[to_additive (attr := simp)]
-theorem mk_div (a b : G) : ((a / b : G) : Q ) = a / b :=
+theorem mk_div (a b : G) : ((a / b : G) : Q) = a / b :=
   rfl
 #align quotient_group.coe_div QuotientGroup.mk_div
 #align quotient_add_group.coe_sub QuotientAddGroup.mk_sub
 
 @[to_additive (attr := simp)]
-theorem mk_pow (a : G) (n : ℕ) : ((a ^ n : G) : Q ) = (a : Q) ^ n :=
+theorem mk_pow (a : G) (n : ℕ) : ((a ^ n : G) : Q) = (a : Q) ^ n :=
   rfl
 #align quotient_group.coe_pow QuotientGroup.mk_pow
 #align quotient_add_group.coe_nsmul QuotientAddGroup.mk_nsmul
 
 @[to_additive (attr := simp)]
-theorem mk_zpow (a : G) (n : ℤ) : ((a ^ n : G) : Q ) = (a : Q) ^ n :=
+theorem mk_zpow (a : G) (n : ℤ) : ((a ^ n : G) : Q) = (a : Q) ^ n :=
   rfl
 #align quotient_group.coe_zpow QuotientGroup.mk_zpow
 #align quotient_add_group.coe_zsmul QuotientAddGroup.mk_zsmul
@@ -211,13 +211,13 @@ def lift (φ : G →* M) (HN : N ≤ φ.ker) : Q →* M :=
 #align quotient_add_group.lift QuotientAddGroup.lift
 
 @[to_additive (attr := simp)]
-theorem lift_mk {φ : G →* M} (HN : N ≤ φ.ker) (g : G) : lift N φ HN (g : Q ) = φ g :=
+theorem lift_mk {φ : G →* M} (HN : N ≤ φ.ker) (g : G) : lift N φ HN (g : Q) = φ g :=
   rfl
 #align quotient_group.lift_mk QuotientGroup.lift_mk
 #align quotient_add_group.lift_mk QuotientAddGroup.lift_mk
 
 @[to_additive (attr := simp)]
-theorem lift_mk' {φ : G →* M} (HN : N ≤ φ.ker) (g : G) : lift N φ HN (mk g : Q ) = φ g :=
+theorem lift_mk' {φ : G →* M} (HN : N ≤ φ.ker) (g : G) : lift N φ HN (mk g : Q) = φ g :=
   rfl
 -- TODO: replace `mk` with `mk'`)
 #align quotient_group.lift_mk' QuotientGroup.lift_mk'
@@ -225,7 +225,7 @@ theorem lift_mk' {φ : G →* M} (HN : N ≤ φ.ker) (g : G) : lift N φ HN (mk
 
 @[to_additive (attr := simp)]
 theorem lift_quot_mk {φ : G →* M} (HN : N ≤ φ.ker) (g : G) :
-    lift N φ HN (Quot.mk _ g : Q ) = φ g :=
+    lift N φ HN (Quot.mk _ g : Q) = φ g :=
   rfl
 #align quotient_group.lift_quot_mk QuotientGroup.lift_quot_mk
 #align quotient_add_group.lift_quot_mk QuotientAddGroup.lift_quot_mk
feat(NumberTheory.NumberField.Units): proof of Dirichlet's unit theorem (#5960)

We prove Dirichlet's unit theorem. More precisely, the main results are:

def basisModTorsion : Basis (Fin (Units.rank K)) ℤ (Additive ((𝓞 K)ˣ ⧸ (torsion K)))

where Units.rank := Fintype.card (InfinitePlace K) - 1 and

theorem exist_unique_eq_mul_prod (x : (𝓞 K)ˣ) : ∃! (ζ : torsion K) (e : Fin (Units.rank K) → ℤ),
    x = ζ * ∏ i, (fundSystem K i) ^ (e i)

where fundSystem : Fin (rank K) → (𝓞 K)ˣ is a fundamental system of units.

The exponents in exist_unique_eq_mul_prod can be computed via the following result:

theorem fun_eq_repr {x ζ : (𝓞 K)ˣ} {f : Fin (rank K) → ℤ} (hζ : ζ ∈ torsion K) 
    (h : x = ζ * ∏ i, (fundSystem K i) ^ (f i)) : f = (basisModTorsion K).repr (Additive.ofMul ↑x)
Diff
@@ -191,6 +191,11 @@ theorem mk_zpow (a : G) (n : ℤ) : ((a ^ n : G) : Q ) = (a : Q) ^ n :=
 #align quotient_group.coe_zpow QuotientGroup.mk_zpow
 #align quotient_add_group.coe_zsmul QuotientAddGroup.mk_zsmul
 
+ @[to_additive (attr := simp)]
+ theorem mk_prod {G ι : Type _} [CommGroup G] (N : Subgroup G) (s : Finset ι) {f : ι → G} :
+     ((Finset.prod s f : G) : G ⧸ N) = Finset.prod s (fun i => (f i : G ⧸ N)) :=
+   map_prod (QuotientGroup.mk' N) _ _
+
 /-- A group homomorphism `φ : G →* M` with `N ⊆ ker(φ)` descends (i.e. `lift`s) to a
 group homomorphism `G/N →* M`. -/
 @[to_additive "An `AddGroup` homomorphism `φ : G →+ M` with `N ⊆ ker(φ)` descends (i.e. `lift`s)
refactor(QuotientGroup): small change to statement of lift (#6848)
Diff
@@ -195,31 +195,31 @@ theorem mk_zpow (a : G) (n : ℤ) : ((a ^ n : G) : Q ) = (a : Q) ^ n :=
 group homomorphism `G/N →* M`. -/
 @[to_additive "An `AddGroup` homomorphism `φ : G →+ M` with `N ⊆ ker(φ)` descends (i.e. `lift`s)
  to a group homomorphism `G/N →* M`."]
-def lift (φ : G →* M) (HN : ∀ x ∈ N, φ x = 1) : Q →* M :=
+def lift (φ : G →* M) (HN : N ≤ φ.ker) : Q →* M :=
   (QuotientGroup.con N).lift φ fun x y h => by
     simp only [QuotientGroup.con, leftRel_apply, Con.rel_mk] at h
     rw [Con.ker_rel]
     calc
       φ x = φ (y * (x⁻¹ * y)⁻¹) := by rw [mul_inv_rev, inv_inv, mul_inv_cancel_left]
-      _ = φ y := by rw [φ.map_mul, HN _ (N.inv_mem h), mul_one]
+      _ = φ y := by rw [φ.map_mul, HN (N.inv_mem h), mul_one]
 #align quotient_group.lift QuotientGroup.lift
 #align quotient_add_group.lift QuotientAddGroup.lift
 
 @[to_additive (attr := simp)]
-theorem lift_mk {φ : G →* M} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N φ HN (g : Q ) = φ g :=
+theorem lift_mk {φ : G →* M} (HN : N ≤ φ.ker) (g : G) : lift N φ HN (g : Q ) = φ g :=
   rfl
 #align quotient_group.lift_mk QuotientGroup.lift_mk
 #align quotient_add_group.lift_mk QuotientAddGroup.lift_mk
 
 @[to_additive (attr := simp)]
-theorem lift_mk' {φ : G →* M} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N φ HN (mk g : Q ) = φ g :=
+theorem lift_mk' {φ : G →* M} (HN : N ≤ φ.ker) (g : G) : lift N φ HN (mk g : Q ) = φ g :=
   rfl
 -- TODO: replace `mk` with `mk'`)
 #align quotient_group.lift_mk' QuotientGroup.lift_mk'
 #align quotient_add_group.lift_mk' QuotientAddGroup.lift_mk'
 
 @[to_additive (attr := simp)]
-theorem lift_quot_mk {φ : G →* M} (HN : ∀ x ∈ N, φ x = 1) (g : G) :
+theorem lift_quot_mk {φ : G →* M} (HN : N ≤ φ.ker) (g : G) :
     lift N φ HN (Quot.mk _ g : Q ) = φ g :=
   rfl
 #align quotient_group.lift_quot_mk QuotientGroup.lift_quot_mk
@@ -626,7 +626,7 @@ def quotientQuotientEquivQuotientAux : (G ⧸ N) ⧸ M.map (mk' N) →* G ⧸ M
   lift (M.map (mk' N)) (map N M (MonoidHom.id G) h)
     (by
       rintro _ ⟨x, hx, rfl⟩
-      rw [map_mk' N M _ _ x]
+      rw [mem_ker, map_mk' N M _ _ x]
       exact (QuotientGroup.eq_one_iff _).mpr hx)
 #align quotient_group.quotient_quotient_equiv_quotient_aux QuotientGroup.quotientQuotientEquivQuotientAux
 #align quotient_add_group.quotient_quotient_equiv_quotient_aux QuotientAddGroup.quotientQuotientEquivQuotientAux
refactor(QuotientGroup): Generalize some things to Monoids (#6804)
Diff
@@ -44,11 +44,12 @@ isomorphism theorems, quotient groups
 
 open Function
 
-universe u v w
+universe u v w x
 
 namespace QuotientGroup
 
 variable {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal] {H : Type v} [Group H]
+  {M : Type x} [Monoid M]
 
 /-- The congruence relation generated by a normal subgroup. -/
 @[to_additive "The additive congruence relation generated by a normal additive subgroup."]
@@ -110,7 +111,7 @@ See note [partially-applied ext lemmas]. -/
  their compositions with `AddQuotientGroup.mk'` are equal.
 
  See note [partially-applied ext lemmas]. "]
-theorem monoidHom_ext ⦃f g : G ⧸ N →* H⦄ (h : f.comp (mk' N) = g.comp (mk' N)) : f = g :=
+theorem monoidHom_ext ⦃f g : G ⧸ N →* M⦄ (h : f.comp (mk' N) = g.comp (mk' N)) : f = g :=
   MonoidHom.ext fun x => QuotientGroup.induction_on x <| (FunLike.congr_fun h : _)
 #align quotient_group.monoid_hom_ext QuotientGroup.monoidHom_ext
 #align quotient_add_group.add_monoid_hom_ext QuotientAddGroup.addMonoidHom_ext
@@ -190,11 +191,11 @@ theorem mk_zpow (a : G) (n : ℤ) : ((a ^ n : G) : Q ) = (a : Q) ^ n :=
 #align quotient_group.coe_zpow QuotientGroup.mk_zpow
 #align quotient_add_group.coe_zsmul QuotientAddGroup.mk_zsmul
 
-/-- A group homomorphism `φ : G →* H` with `N ⊆ ker(φ)` descends (i.e. `lift`s) to a
-group homomorphism `G/N →* H`. -/
-@[to_additive "An `AddGroup` homomorphism `φ : G →+ H` with `N ⊆ ker(φ)` descends (i.e. `lift`s)
- to a group homomorphism `G/N →* H`."]
-def lift (φ : G →* H) (HN : ∀ x ∈ N, φ x = 1) : Q →* H :=
+/-- A group homomorphism `φ : G →* M` with `N ⊆ ker(φ)` descends (i.e. `lift`s) to a
+group homomorphism `G/N →* M`. -/
+@[to_additive "An `AddGroup` homomorphism `φ : G →+ M` with `N ⊆ ker(φ)` descends (i.e. `lift`s)
+ to a group homomorphism `G/N →* M`."]
+def lift (φ : G →* M) (HN : ∀ x ∈ N, φ x = 1) : Q →* M :=
   (QuotientGroup.con N).lift φ fun x y h => by
     simp only [QuotientGroup.con, leftRel_apply, Con.rel_mk] at h
     rw [Con.ker_rel]
@@ -205,20 +206,20 @@ def lift (φ : G →* H) (HN : ∀ x ∈ N, φ x = 1) : Q →* H :=
 #align quotient_add_group.lift QuotientAddGroup.lift
 
 @[to_additive (attr := simp)]
-theorem lift_mk {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N φ HN (g : Q ) = φ g :=
+theorem lift_mk {φ : G →* M} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N φ HN (g : Q ) = φ g :=
   rfl
 #align quotient_group.lift_mk QuotientGroup.lift_mk
 #align quotient_add_group.lift_mk QuotientAddGroup.lift_mk
 
 @[to_additive (attr := simp)]
-theorem lift_mk' {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N φ HN (mk g : Q ) = φ g :=
+theorem lift_mk' {φ : G →* M} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N φ HN (mk g : Q ) = φ g :=
   rfl
 -- TODO: replace `mk` with `mk'`)
 #align quotient_group.lift_mk' QuotientGroup.lift_mk'
 #align quotient_add_group.lift_mk' QuotientAddGroup.lift_mk'
 
 @[to_additive (attr := simp)]
-theorem lift_quot_mk {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) :
+theorem lift_quot_mk {φ : G →* M} (HN : ∀ x ∈ N, φ x = 1) (g : G) :
     lift N φ HN (Quot.mk _ g : Q ) = φ g :=
   rfl
 #align quotient_group.lift_quot_mk QuotientGroup.lift_quot_mk
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
@@ -146,7 +146,7 @@ theorem eq_iff_div_mem {N : Subgroup G} [nN : N.Normal] {x y : G} :
 -- for commutative groups we don't need normality assumption
 
 @[to_additive]
-instance Quotient.commGroup {G : Type _} [CommGroup G] (N : Subgroup G) : CommGroup (G ⧸ N) :=
+instance Quotient.commGroup {G : Type*} [CommGroup G] (N : Subgroup G) : CommGroup (G ⧸ N) :=
   { toGroup := @QuotientGroup.Quotient.group _ _ N N.normal_of_comm
     mul_comm := fun a b => Quotient.inductionOn₂' a b fun a b => congr_arg mk (mul_comm a b) }
 #align quotient_group.quotient.comm_group QuotientGroup.Quotient.commGroup
@@ -265,7 +265,7 @@ theorem map_id (h : N ≤ Subgroup.comap (MonoidHom.id _) N := (Subgroup.comap_i
 #align quotient_add_group.map_id QuotientAddGroup.map_id
 
 @[to_additive (attr := simp)]
-theorem map_map {I : Type _} [Group I] (M : Subgroup H) (O : Subgroup I) [M.Normal] [O.Normal]
+theorem map_map {I : Type*} [Group I] (M : Subgroup H) (O : Subgroup I) [M.Normal] [O.Normal]
     (f : G →* H) (g : H →* I) (hf : N ≤ Subgroup.comap f M) (hg : M ≤ Subgroup.comap g O)
     (hgf : N ≤ Subgroup.comap (g.comp f) O :=
       hf.trans ((Subgroup.comap_mono hg).trans_eq (Subgroup.comap_comap _ _ _)))
@@ -276,7 +276,7 @@ theorem map_map {I : Type _} [Group I] (M : Subgroup H) (O : Subgroup I) [M.Norm
 #align quotient_add_group.map_map QuotientAddGroup.map_map
 
 @[to_additive (attr := simp)]
-theorem map_comp_map {I : Type _} [Group I] (M : Subgroup H) (O : Subgroup I) [M.Normal] [O.Normal]
+theorem map_comp_map {I : Type*} [Group I] (M : Subgroup H) (O : Subgroup I) [M.Normal] [O.Normal]
     (f : G →* H) (g : H →* I) (hf : N ≤ Subgroup.comap f M) (hg : M ≤ Subgroup.comap g O)
     (hgf : N ≤ Subgroup.comap (g.comp f) O :=
       hf.trans ((Subgroup.comap_mono hg).trans_eq (Subgroup.comap_comap _ _ _))) :
perf: remove some with instance construction patterns (#6241)

The general thought here is that

  { hf.distribMulAction f smul with
    smul := (· • ·)
    ... }

is treated roughly as

  let src := hf.distribMulAction f smul
  { toDistribMulAction :=
    { toMulAction :=
      { smul := (· • ·)
        one_smul := src.one_smul
        mul_smul := src.mul_smul}
      smul_add := src.smul_add 
      smul_zero := src.smul_zero  }
    ... }

which is a much larger term (especially once the let is reduced, due to how many arguments hf.distribMulAction consumes) than

  { toDistribMulAction := hf.distribMulAction f smul
    ... }

In some places the long version is maybe still more desirable, if we want a specific syntactic equality for smul that the base structure defines differently; but none of the examples in this PR are such a case.

Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Co-authored-by: Matthew Ballard <matt@mrb.email> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -147,7 +147,7 @@ theorem eq_iff_div_mem {N : Subgroup G} [nN : N.Normal] {x y : G} :
 
 @[to_additive]
 instance Quotient.commGroup {G : Type _} [CommGroup G] (N : Subgroup G) : CommGroup (G ⧸ N) :=
-  { @QuotientGroup.Quotient.group _ _ N N.normal_of_comm with
+  { toGroup := @QuotientGroup.Quotient.group _ _ N N.normal_of_comm
     mul_comm := fun a b => Quotient.inductionOn₂' a b fun a b => congr_arg mk (mul_comm a b) }
 #align quotient_group.quotient.comm_group QuotientGroup.Quotient.commGroup
 #align quotient_add_group.quotient.add_comm_group QuotientAddGroup.Quotient.addCommGroup
feat(Algebra/Category/GroupCat/Abelian): prove AddCommGroupCat is AB5 (#5597)

This work was done during the 2023 Copenhagen masterclass on formalisation of condensed mathematics. Numerous participants contributed.

Co-authored-by: Moritz Firsching <moritz.firsching@gmail.com> Co-authored-by: Nikolas Kuhn <nikolaskuhn@gmx.de> Co-authored-by: Amelia Livingston <101damnations@github.com>

Co-authored-by: Markus Himmel <markus@himmel-villmar.de> Co-authored-by: Moritz Firsching <firsching@google.com> Co-authored-by: adamtopaz <github@adamtopaz.com> Co-authored-by: nick-kuhn <nikolaskuhn@gmx.de>

Diff
@@ -44,7 +44,7 @@ isomorphism theorems, quotient groups
 
 open Function
 
-universe u v
+universe u v w
 
 namespace QuotientGroup
 
@@ -122,6 +122,12 @@ theorem eq_one_iff {N : Subgroup G} [nN : N.Normal] (x : G) : (x : G ⧸ N) = 1
 #align quotient_group.eq_one_iff QuotientGroup.eq_one_iff
 #align quotient_add_group.eq_zero_iff QuotientAddGroup.eq_zero_iff
 
+@[to_additive]
+theorem ker_le_range_iff {I : Type w} [Group I] (f : G →* H) [f.range.Normal] (g : H →* I) :
+    g.ker ≤ f.range ↔ (mk' f.range).comp g.ker.subtype = 1 :=
+  ⟨fun h => MonoidHom.ext fun ⟨_, hx⟩ => (eq_one_iff _).mpr <| h hx,
+    fun h x hx => (eq_one_iff _).mp <| by exact FunLike.congr_fun h ⟨x, hx⟩⟩
+
 @[to_additive (attr := simp)]
 theorem ker_mk' : MonoidHom.ker (QuotientGroup.mk' N : G →* G ⧸ N) = N :=
   Subgroup.ext eq_one_iff
chore: fix grammar mistakes (#6121)
Diff
@@ -471,7 +471,7 @@ theorem quotientMapSubgroupOfOfLe_mk {A' A B' B : Subgroup G} [_hAN : (A'.subgro
 If `A' = B'` and `A = B`, then the quotients `A / (A' ⊓ A)` and `B / (B' ⊓ B)` are isomorphic.
 
 Applying this equiv is nicer than rewriting along the equalities, since the type of
-`(A'.subgroupOf A : Subgroup A)` depends on on `A`.
+`(A'.subgroupOf A : Subgroup A)` depends on `A`.
 -/
 @[to_additive "Let `A', A, B', B` be subgroups of `G`. If `A' = B'` and `A = B`, then the quotients
 `A / (A' ⊓ A)` and `B / (B' ⊓ B)` are isomorphic. Applying this equiv is nicer than rewriting along
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
@@ -4,17 +4,14 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kevin Buzzard, Patrick Massot
 
 This file is to a certain extent based on `quotient_module.lean` by Johannes Hölzl.
-
-! This file was ported from Lean 3 source module group_theory.quotient_group
-! leanprover-community/mathlib commit 59694bd07f0a39c5beccba34bd9f413a160782bf
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.GroupTheory.Congruence
 import Mathlib.GroupTheory.Coset
 import Mathlib.GroupTheory.Subgroup.Finite
 import Mathlib.GroupTheory.Subgroup.Pointwise
 
+#align_import group_theory.quotient_group from "leanprover-community/mathlib"@"59694bd07f0a39c5beccba34bd9f413a160782bf"
+
 /-!
 # Quotients of groups by normal subgroups
 
chore: cleanup whitespace (#5988)

Grepping for [^ .:{-] [^ :] and reviewing the results. Once I started I couldn't stop. :-)

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

Diff
@@ -210,7 +210,7 @@ theorem lift_mk {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N φ
 @[to_additive (attr := simp)]
 theorem lift_mk' {φ : G →* H} (HN : ∀ x ∈ N, φ x = 1) (g : G) : lift N φ HN (mk g : Q ) = φ g :=
   rfl
--- TODO: replace `mk` with  `mk'`)
+-- TODO: replace `mk` with `mk'`)
 #align quotient_group.lift_mk' QuotientGroup.lift_mk'
 #align quotient_add_group.lift_mk' QuotientAddGroup.lift_mk'
 
chore: fix many typos (#4983)

These are all doc fixes

Diff
@@ -109,7 +109,7 @@ theorem mk'_eq_mk' {x y : G} : mk' N x = mk' N y ↔ ∃ z ∈ N, x * z = y :=
 `QuotientGroup.mk'` are equal.
 
 See note [partially-applied ext lemmas]. -/
-@[to_additive (attr := ext 1100) "Two `AddMonoidHoms`s from an additive quotient group are equal if
+@[to_additive (attr := ext 1100) "Two `AddMonoidHom`s from an additive quotient group are equal if
  their compositions with `AddQuotientGroup.mk'` are equal.
 
  See note [partially-applied ext lemmas]. "]
chore: bye-bye, solo bys! (#3825)

This PR puts, with one exception, every single remaining by that lies all by itself on its own line to the previous line, thus matching the current behaviour of start-port.sh. The exception is when the by begins the second or later argument to a tuple or anonymous constructor; see https://github.com/leanprover-community/mathlib4/pull/3825#discussion_r1186702599.

Essentially this is s/\n *by$/ by/g, but with manual editing to satisfy the linter's max-100-char-line requirement. The Python style linter is also modified to catch these "isolated bys".

Diff
@@ -133,10 +133,10 @@ theorem ker_mk' : MonoidHom.ker (QuotientGroup.mk' N : G →* G ⧸ N) = N :=
 -- porting note: I think this is misnamed without the prime
 
 @[to_additive]
-theorem eq_iff_div_mem {N : Subgroup G} [nN : N.Normal] {x y : G} : (x : G ⧸ N) = y ↔ x / y ∈ N :=
-  by
-    refine' eq_comm.trans (QuotientGroup.eq.trans _)
-    rw [nN.mem_comm_iff, div_eq_mul_inv]
+theorem eq_iff_div_mem {N : Subgroup G} [nN : N.Normal] {x y : G} :
+    (x : G ⧸ N) = y ↔ x / y ∈ N := by
+  refine' eq_comm.trans (QuotientGroup.eq.trans _)
+  rw [nN.mem_comm_iff, div_eq_mul_inv]
 #align quotient_group.eq_iff_div_mem QuotientGroup.eq_iff_div_mem
 #align quotient_add_group.eq_iff_sub_mem QuotientAddGroup.eq_iff_sub_mem
 
@@ -192,8 +192,7 @@ group homomorphism `G/N →* H`. -/
 @[to_additive "An `AddGroup` homomorphism `φ : G →+ H` with `N ⊆ ker(φ)` descends (i.e. `lift`s)
  to a group homomorphism `G/N →* H`."]
 def lift (φ : G →* H) (HN : ∀ x ∈ N, φ x = 1) : Q →* H :=
-  (QuotientGroup.con N).lift φ fun x y h =>
-    by
+  (QuotientGroup.con N).lift φ fun x y h => by
     simp only [QuotientGroup.con, leftRel_apply, Con.rel_mk] at h
     rw [Con.ker_rel]
     calc
@@ -669,8 +668,7 @@ theorem subsingleton_quotient_top : Subsingleton (G ⧸ (⊤ : Subgroup G)) := b
 @[to_additive "If the quotient by an additive subgroup gives a singleton then the additive subgroup
 is the whole additive group."]
 theorem subgroup_eq_top_of_subsingleton (H : Subgroup G) (h : Subsingleton (G ⧸ H)) : H = ⊤ :=
-  top_unique fun x _ =>
-    by
+  top_unique fun x _ => by
     have this : 1⁻¹ * x ∈ H := QuotientGroup.eq.1 (Subsingleton.elim _ _)
     rwa [inv_one, one_mul] at this
 #align quotient_group.subgroup_eq_top_of_subsingleton QuotientGroup.subgroup_eq_top_of_subsingleton
chore: fix #align lines (#3640)

This PR fixes two things:

  • Most align statements for definitions and theorems and instances that are separated by two newlines from the relevant declaration (s/\n\n#align/\n#align). This is often seen in the mathport output after ending calc blocks.
  • All remaining more-than-one-line #align statements. (This was needed for a script I wrote for #3630.)
Diff
@@ -64,7 +64,6 @@ protected def con : Con G where
       (a * c)⁻¹ * (b * d) = c⁻¹ * (a⁻¹ * b) * c⁻¹⁻¹ * (c⁻¹ * d) :=
         by simp only [mul_inv_rev, mul_assoc, inv_mul_cancel_left]
       _ ∈ N := N.mul_mem (nN.conj_mem _ hab _) hcd
-
 #align quotient_group.con QuotientGroup.con
 #align quotient_add_group.con QuotientAddGroup.con
 
@@ -200,7 +199,6 @@ def lift (φ : G →* H) (HN : ∀ x ∈ N, φ x = 1) : Q →* H :=
     calc
       φ x = φ (y * (x⁻¹ * y)⁻¹) := by rw [mul_inv_rev, inv_inv, mul_inv_cancel_left]
       _ = φ y := by rw [φ.map_mul, HN _ (N.inv_mem h), mul_one]
-
 #align quotient_group.lift QuotientGroup.lift
 #align quotient_add_group.lift QuotientAddGroup.lift
 
feat: port GroupTheory.FreeProduct (#2979)
Diff
@@ -110,7 +110,7 @@ theorem mk'_eq_mk' {x y : G} : mk' N x = mk' N y ↔ ∃ z ∈ N, x * z = y :=
 `QuotientGroup.mk'` are equal.
 
 See note [partially-applied ext lemmas]. -/
-@[to_additive (attr := ext 1001) "Two `AddMonoidHoms`s from an additive quotient group are equal if
+@[to_additive (attr := ext 1100) "Two `AddMonoidHoms`s from an additive quotient group are equal if
  their compositions with `AddQuotientGroup.mk'` are equal.
 
  See note [partially-applied ext lemmas]. "]
feat: require @[simps!] if simps runs in expensive mode (#1885)
  • This does not change the behavior of simps, just raises a linter error if you run simps in a more expensive mode without writing !.
  • Fixed some incorrect occurrences of to_additive, simps. Will do that systematically in future PR.
  • Fix port of OmegaCompletePartialOrder.ContinuousHom.ofMono a bit

Co-authored-by: Yury G. Kudryashov <urkud@urkud.name>

Diff
@@ -420,7 +420,7 @@ def quotientKerEquivOfRightInverse (ψ : H → G) (hφ : RightInverse ψ φ) : G
 #align quotient_add_group.quotient_ker_equiv_of_right_inverse QuotientAddGroup.quotientKerEquivOfRightInverse
 
 /-- The canonical isomorphism `G/⊥ ≃* G`. -/
-@[to_additive (attr := simps) "The canonical isomorphism `G/⊥ ≃+ G`."]
+@[to_additive (attr := simps!) "The canonical isomorphism `G/⊥ ≃+ G`."]
 def quotientBot : G ⧸ (⊥ : Subgroup G) ≃* G :=
   quotientKerEquivOfRightInverse (MonoidHom.id G) id fun _x => rfl
 #align quotient_group.quotient_bot QuotientGroup.quotientBot
chore: use ext priority (#2020)
Diff
@@ -110,7 +110,7 @@ theorem mk'_eq_mk' {x y : G} : mk' N x = mk' N y ↔ ∃ z ∈ N, x * z = y :=
 `QuotientGroup.mk'` are equal.
 
 See note [partially-applied ext lemmas]. -/
-@[to_additive (attr := ext) "Two `AddMonoidHoms`s from an additive quotient group are equal if
+@[to_additive (attr := ext 1001) "Two `AddMonoidHoms`s from an additive quotient group are equal if
  their compositions with `AddQuotientGroup.mk'` are equal.
 
  See note [partially-applied ext lemmas]. "]
@@ -650,22 +650,8 @@ theorem quotientQuotientEquivQuotientAux_mk_mk (x : G) :
 def quotientQuotientEquivQuotient : (G ⧸ N) ⧸ M.map (QuotientGroup.mk' N) ≃* G ⧸ M :=
   MonoidHom.toMulEquiv (quotientQuotientEquivQuotientAux N M h)
     (QuotientGroup.map _ _ (QuotientGroup.mk' N) (Subgroup.le_comap_map _ _))
-    (by
-      refine' @QuotientGroup.monoidHom_ext _ _ (M.map (mk' N)) _ _ _ _
-        (MonoidHom.id ((G ⧸ N) ⧸ Subgroup.map (mk' N) M)) _
-      refine' @QuotientGroup.monoidHom_ext _ _ N _ _ _ _
-        (MonoidHom.comp (MonoidHom.id ((G ⧸ N) ⧸ Subgroup.map (mk' N) M))
-        (mk' (Subgroup.map (mk' N) M))) _
-      apply MonoidHom.ext
-      -- porting note: cannot change the above two `refine'`s to `apply`
-      intro x
-      simp)
-    (by
-      apply QuotientGroup.monoidHom_ext
-      apply MonoidHom.ext
-      intro x
-      -- porting note: `ext` doesn't work here, had to use output of `ext?` from Lean 3
-      simp)
+    (by ext; simp)
+    (by ext; simp)
 #align quotient_group.quotient_quotient_equiv_quotient QuotientGroup.quotientQuotientEquivQuotient
 #align quotient_add_group.quotient_quotient_equiv_quotient QuotientAddGroup.quotientQuotientEquivQuotient
 
feat: port GroupTheory.QuotientGroup (#1996)

porting notes:

  1. near line 595: Lean 4 couldn't find a Setoid instance that Lean 3 found automatically (in part via unification).
  2. near line 654, declaration quotientQuotientEquivQuotient: The ext calls were totally borked, and in the first case even manually applying the ext lemmas didn't work out of the box because Lean couldn't unify the types (this was egregious)

Dependencies 8 + 301

302 files ported (97.4%)
127356 lines ported (97.6%)
Show graph

The unported dependencies are